urwid 中是否有等效的 GUI 文本字段?
Is there an equivalent of a GUI text field in urwid?
我想知道 python 库 urwid 是否包含一个类似于 GUI 文本字段的输入选项。
我的意思是,
- 输入选项在输入后保持可编辑状态
- 可以按任何顺序填写各个字段。
这里是Swing的一个简单例子JTextField:
urwid 中等效的输入文本是 Edit widget,下面是一个如何使用它的示例:
#!/usr/bin/env python
from __future__ import print_function, absolute_import, division
import urwid
def show_or_exit(key):
if key in ('q', 'Q', 'esc'):
raise urwid.ExitMainLoop()
def name_changed(w, x):
header.set_text('Hello % s!' % x)
if __name__ == '__main__':
name_edit = urwid.Edit("Name: ")
header = urwid.Text('Fill your details')
widget = urwid.Pile([
urwid.Padding(header, 'center', width=('relative', 6)),
name_edit,
urwid.Edit('Address: '),
])
urwid.connect_signal(name_edit, 'change', name_changed)
widget = urwid.Filler(widget, 'top')
loop = urwid.MainLoop(widget, unhandled_input=show_or_exit)
loop.run()
如果您尝试一下,您会发现这两个字段都保持可编辑状态,并且可以按任何顺序填写。
我想知道 python 库 urwid 是否包含一个类似于 GUI 文本字段的输入选项。
我的意思是,
- 输入选项在输入后保持可编辑状态
- 可以按任何顺序填写各个字段。
这里是Swing的一个简单例子JTextField:
urwid 中等效的输入文本是 Edit widget,下面是一个如何使用它的示例:
#!/usr/bin/env python
from __future__ import print_function, absolute_import, division
import urwid
def show_or_exit(key):
if key in ('q', 'Q', 'esc'):
raise urwid.ExitMainLoop()
def name_changed(w, x):
header.set_text('Hello % s!' % x)
if __name__ == '__main__':
name_edit = urwid.Edit("Name: ")
header = urwid.Text('Fill your details')
widget = urwid.Pile([
urwid.Padding(header, 'center', width=('relative', 6)),
name_edit,
urwid.Edit('Address: '),
])
urwid.connect_signal(name_edit, 'change', name_changed)
widget = urwid.Filler(widget, 'top')
loop = urwid.MainLoop(widget, unhandled_input=show_or_exit)
loop.run()
如果您尝试一下,您会发现这两个字段都保持可编辑状态,并且可以按任何顺序填写。