Есть ли эквивалент в текстовом поле GUI в urwid? - PullRequest
0 голосов
/ 26 августа 2018

Мне интересно, есть ли в библиотеке Python urwid опция ввода, которая ведет себя как текстовое поле GUI.

Под этим я подразумеваю,

  • опция ввода остается редактируемой после ввода.
  • отдельные поля могут быть заполнены в любом порядке.

Вот простой пример Swing JTextField :

enter image description here

1 Ответ

0 голосов
/ 27 августа 2018

Эквивалентом входного текста в urwid является Виджет редактирования , вот пример того, как вы можете его использовать:

#!/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()

Если вы попробуете это, вы увидите, что оба поля остаются редактируемыми и могут быть заполнены в любом порядке.

...