【问题标题】: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() 小部件方法确实会访问所有子小部件(包括 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 作为您的根小部件,则可以完成类似的构造。

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 2015-01-04
      • 2023-02-03
      • 1970-01-01
      • 2019-01-19
      • 2020-08-15
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多