如何在 kivy 和 kivymd 中访问具有 id 的元素

Posted

技术标签:

【中文标题】如何在 kivy 和 kivymd 中访问具有 id 的元素【英文标题】:how access an element with id in kivy & kivymd 【发布时间】:2021-06-27 10:59:36 【问题描述】:

我正在使用 KIVY Lib 我想访问测试类中的某些元素。我该怎么做?

这是我的代码

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.floatlayout import FloatLayout
from kivy.lang.builder import Builder

test_helper ="""
MDLabel:
    id : label
    text: "Hello World !"

"""

class test(FloatLayout):
    def __init__(self, **kwargs):
        super(test, self).__init__(**kwargs)
        self.add_widget(Builder.load_string(test_helper))

class MainApp(MDApp):
    def build(self):
        self.sm = ScreenManager()
        self.test = test()
        screen = Screen(name = "test")
        screen.add_widget(self.test)
        self.sm.add_widget(screen)
        return self.sm
    
if __name__ == "__main__":
    app = MainApp()
    app.run()

例如,我在test_helper 中有MDlabel,它用于测试类。但我不知道如何访问它

【问题讨论】:

【参考方案1】:
 self.test = test()

使用此声明,您可以使用 self.test.children[0] 访问 MDLabel。

【讨论】:

非常感谢

以上是关于如何在 kivy 和 kivymd 中访问具有 id 的元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在 KivyMD 的 .kv 文件中使用 kivy 中的数据表?

具有多个屏幕的 KivyMD 菜单

如何在 Kivy 或 KivyMD 中创建类似快照的按钮?

Kivy/ Kivymd 地图切换屏幕

Python kivy(kivymd)如何从MD存储和加载数据

如何在 kivy 或 kivymd 中正确使用 on_resize 函数