pip install urwid
python
import urwid
python
class MenuItem(object):
def __init__(self, caption, callback):
self.caption = caption
self.callback = callback
def get_widget(self):
button = urwid.Button(self.caption)
urwid.connect_signal(button, 'click', self.callback)
return button
python
class Menu(object):
def __init__(self, menu_items):
self.menu_items = menu_items
def get_widget(self):
buttons = []
for menu_item in self.menu_items:
buttons.append(menu_item.get_widget())
return urwid.Pile(buttons)
python
class App(object):
def __init__(self, menu):
self.menu = menu
def run(self):
# ...
top_widget = urwid.Padding(self.menu.get_widget(), left=2, right=2)
fill = urwid.Filler(top_widget, valign='top')
loop = urwid.MainLoop(fill)
loop.run()
python
def main():
menu_items = [
]
menu = Menu(menu_items)
app = App(menu)
app.run()
def callback1(widget):
pass
def callback2(widget):
pass
def callback3(widget):
pass
if __name__ == '__main__':
main()