【问题标题】:kivy find all TextInputskivy 找到所有 TextInputs
【发布时间】:2018-04-07 11:00:00
【问题描述】:
我试图在我的 GUI 中注册所有 TextInputs 和 Spinner。
其中每一个都有一个变量gid。
root_widget.walk() 方法的问题是我有不同的选项卡,它不会加载尚未显示的小部件。
但这不是我最大的问题。
问题是 walk()method 只显示小部件,而不是 TextInputs 或 Spinner。
我现在的问题是:如何遍历每个对象(TextInputs/Spinner 等),包括那些尚未显示的对象(在不同的选项卡中)
我很高兴得到任何帮助或建议。
你好,芬兰人
【问题讨论】:
标签:
python
user-interface
kivy
【解决方案1】:
walk() 小部件方法确实会访问所有子小部件(包括 TextInput 和 Spinner。如果您使用 TabbedPanel 作为根小部件,那么以下将注册您的所有小部件(如果它被绑定到on_draw):
registered = False
def on_draw(*args):
global registered
if registered:
return # just to avoid running this many times
registered = True
app = App.get_running_app()
for tab in root_widget.tab_list: # assumes root_widget is a TabbedPanel
if tab.content is not None:
for widget in tab.content.walk():
app.register_widget(widget)
如果您使用 ScreenManager 作为您的根小部件,则可以完成类似的构造。