在urwid中是否有等效于GUI文本字段的内容?

时间:2018-08-26 00:19:07

标签: python user-interface uitextfield command-line-interface urwid

我想知道python库urwid是否包含行为类似于GUI文本字段的输入选项。

我的意思是

  • 输入选项在输入后仍可编辑。
  • 各个字段可以按任意顺序填写。

这是Swing的JTextField的简单示例:

enter image description here

1 个答案:

答案 0 :(得分:1)

在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()

如果尝试一下,您会看到两个字段都保持可编辑状态,并且可以按任何顺序填充。