I'm trying to build a simple console application using urwid which
performs the following task:
1. Print menu ("Menu: ")
2. User presses a letter or number key (everything else can be discarded)
3. Print some text based on key pressed (quit if 'q')
4. GOTO 1
At the moment I've got the following code, largely taken from the tutorial:
import urwid
def unknown_input(input):
if input in ('q', 'Q'):
raise urwid.ExitMainLoop()
elif input in ('l', 'L'):
txt.set_text('list')
else:
txt.set_text('unknown option')
txt = urwid.Text('Menu: ')
fill = urwid.Filler(txt, 'top')
loop = urwid.MainLoop(fill, unhandled_input=unknown_input)
loop.run()
This *almost* does what I want, except txt.set_text() overwrites the one
line of text every time, whereas I want to print below the existing text
to get output like the following:
Menu: L
"You pressed L"
Menu: q
<quit>
I could just use txt.set_text(txt.get_text() + 'new text') but I suspect
that would end up creating a large string eventually and I don't care
about content once it has disappeared off the top of the screen.
Should I be using a different object instead of Text? I don't want users
to be able to scroll back so a ListBox doesn't really fit (users can
only press a key at the menu).
Thanks,
Paul
--
Paul Waring
http://www.pwaring.com
_______________________________________________
Urwid mailing list
[email protected]
http://lists.excess.org/mailman/listinfo/urwid