kivy找到所有TextInputs

时间:2018-04-07 11:00:01

标签: python user-interface kivy

我试图在GUI中注册所有TextInputs和Spinner。 其中每个都有一个变量gid

root_widget.walk()方法的问题在于我有不同的标签,并且它不会加载尚未显示的小部件。

然而,这不是我最大的问题。

问题是walk()方法只显示Widgets而不显示TextInputs和Spinner。

  

我现在的问题是:你如何遍历每个对象(TextInputs / Spinner等),包括那些尚未显示的对象(在不同的标签中)

我很高兴能得到任何帮助或建议。

问候,芬恩

1 个答案:

答案 0 :(得分:0)

walk()窗口小部件方法会访问所有子窗口小部件(包括TextInputSpinner。如果您使用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作为根窗口小部件,则可以执行类似的构造。