我试图在GUI中注册所有TextInputs和Spinner。
其中每个都有一个变量gid
。
root_widget.walk()
方法的问题在于我有不同的标签,并且它不会加载尚未显示的小部件。
然而,这不是我最大的问题。
问题是walk()
方法只显示Widgets而不显示TextInputs和Spinner。
我现在的问题是:你如何遍历每个对象(TextInputs / Spinner等),包括那些尚未显示的对象(在不同的标签中)
我很高兴能得到任何帮助或建议。
问候,芬恩
答案 0 :(得分:0)
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
作为根窗口小部件,则可以执行类似的构造。