从 Python 一侧的一个 Class 访问多个 kivy Classes

Accessing multiple kivy Classes from one single Class within Python side

我在 python 中有两个 Classes,在 Kivy 文件中的 2 个不同 Classes 中有 2 个标签可用,我想从一个 Python 中控制Class:

Class Python(BoyLayout):
    def __init__(self, **kwargs):
        super(Python, self).__init__(*kwargs)
        self.label1 = self.ids["label1"]
        self.label2 = self.ids["label2"]

   def changeText(self):
       self.label1.text = "New Text 1"
       self.label2.text = "New Text 2"

Class NewClass(BoxLayout):
    pass

我有:

<Python>:
    BoxLayout: "vertical"
        Label:
            id:label1
            text: "Text 1"

<NewClass>:
    BoxLayout: "vertical"
        Label:
            id:label2
            text: "Text 2"

在此示例中,更改仅适用于 label1 的更改,但当然它不适用于 label2,因为我需要访问 NewClass 属性,这是我所在的部分无法锻炼。

此外,我想控制第一个 Class 中的所有 kivy 变量(本例中为 "Python")——希望这是可能的

为了理解有什么很酷的帮助吗?

好的,一夜好眠后,我可以自己找到解决方案,非常简单:

  1. 在"Python"中给"NewClass"一个ID:

    <Python>:
        BoxLayout: "vertical"
            Label:
                 id:label1
                 text: "Text 1"
            NewClass:
                 id: newclass
    
    <NewClass>:
        BoxLayout: "vertical"
            Label:
                id:label2
                text: "Text 2"
    

然后在.py端你需要调用refer to newclass: self.newclassid = self.ids["newclass"]

然后link标签id:

self.newclasslabel = self.newclassid.ids["label2"]

最后更改文本:

self.newclasslabel.text = "New Label 2"