Python と urwid の両方が初めてなので、ここでチュートリアルの例を試していましたhttp://excess.org/urwid/docs/tutorial/
ただし、最初のものは正常に機能しますが、後のものはほとんど機能しないようです。たとえば、この特定のものを実行しようとすると:
import urwid
choices = u'Chapman Cleese Gilliam Idle Jones Palin'.split()
def menu(title, choices):
body = [urwid.Text(title), urwid.Divider()]
for c in choices:
button = urwid.Button(c)
urwid.connect_signal(button, 'click', item_chosen, c)
body.append(urwid.AttrMap(button, None, focus_map='reversed'))
return urwid.ListBox(urwid.SimpleFocusListWalker(body))
def item_chosen(button, choice):
response = urwid.Text([u'You chose ', choice, u'\n'])
done = urwid.Button(u'Ok')
urwid.connect_signal(done, 'click', exit_program)
main.original_widget = urwid.Filler(urwid.Pile([response,
urwid.AttrMap(done, None, focus_map='reversed')]))
def exit_program(button):
raise urwid.ExitMainLoop()
main = urwid.Padding(menu(u'Pythons', choices), left=2, right=2)
top = urwid.Overlay(main, urwid.SolidFill(u'\N{MEDIUM SHADE}'),
align='center', width=('relative', 60),
valign='middle', height=('relative', 60),
min_width=20, min_height=9)
urwid.MainLoop(top, palette=[('reversed', 'standout', '')]).run()
次のエラーが表示されます。
Traceback (most recent call last):
File "example.py", line 23, in <module>
main = urwid.Padding(menu(u'Pythons', choices), left=2, right=2)
File "example.py", line 11, in menu
return urwid.ListBox(urwid.SimpleFocusListWalker(body))
AttributeError: 'module' object has no attribute 'SimpleFocusListWalker'
私は何か間違ったことをしていますか?それが何らかの形で役立つ場合、Ubuntu 12.10 64ビットを実行しています。