python pip install urwid python import urwid class MyCustomWidget(urwid.WidgetWrap): def __init__(self, text): self.text = text widget = urwid.Text(self.text) widget = urwid.AttrMap(widget, 'widget_text') super().__init__(widget) def selectable(self): return True def keypress(self, size, key): if key == 'enter': self.text = "Enter key pressed" self._invalidate() return key python import urwid class CustomTextBox(urwid.WidgetWrap): def __init__(self, label, default_value): self.label_text = urwid.Text(label) self.value_text = urwid.Text(default_value) self.widget = urwid.Columns([ ('fixed', len(label), self.label_text), self.value_text ]) super().__init__(self.widget) def set_value(self, value): self.value_text.set_text(value) python import urwid class MyCustomWidget(urwid.WidgetWrap): def __init__(self, text): self.text = text widget = urwid.Text(self.text) widget = urwid.AttrMap(widget, 'widget_text') super().__init__(widget) def selectable(self): return True def keypress(self, size, key): if key == 'enter': self.text = "Enter key pressed" self._invalidate() return key class CustomTextBox(urwid.WidgetWrap): def __init__(self, label, default_value): self.label_text = urwid.Text(label) self.value_text = urwid.Text(default_value) self.widget = urwid.Columns([ ('fixed', len(label), self.label_text), self.value_text ]) super().__init__(self.widget) def set_value(self, value): self.value_text.set_text(value) def exit_handler(key): if key in ('q', 'Q'): raise urwid.ExitMainLoop() if __name__ == '__main__': custom_widget = MyCustomWidget("Hello, World!") custom_textbox = CustomTextBox("Name: ", "John Doe") main_widget = urwid.Pile([ custom_widget, custom_textbox, urwid.Text("Press 'Enter' in MyCustomWidget to update it"), urwid.Text("Press 'q' to exit") ]) palette = [('widget_text', 'light green,bold', '')] loop = urwid.MainLoop(main_widget, palette, unhandled_input=exit_handler) loop.run()


上一篇:
下一篇:
切换中文