我在python中有两个Classes,在Kivy文件中有2个不同的Classes中有2个标签,我想从一个Python类控制它:
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
关于kivy,我有:
<Python>:
BoxLayout: "vertical"
Label:
id:label1
text: "Text 1"
<NewClass>:
BoxLayout: "vertical"
Label:
id:label2
text: "Text 2"
在这个例子中,更改只适用于更改label1,但当然它不适用于label2,因为我需要访问NewClass属性,这是我无法锻炼的部分。
另外我想控制第一类中的所有kivy变量(本例中为“Python”) - 希望这是可能的
为了理解,有什么很酷的帮助吗?
答案 0 :(得分:0)
在一夜好眠之后,我可以自己找到解决方案非常简单:
为&#34; NewClass&#34;提供ID在&#34; Python&#34;:
<Python>:
BoxLayout: "vertical"
Label:
id:label1
text: "Text 1"
NewClass:
id: newclass
<NewClass>:
BoxLayout: "vertical"
Label:
id:label2
text: "Text 2"
然后在.py方面你需要调用引用newclass:
self.newclassid = self.ids["newclass"]
然后链接标签ID:
self.newclasslabel = self.newclassid.ids["label2"]
最后改变文字:
self.newclasslabel.text = "New Label 2"