从 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")——希望这是可能的
为了理解有什么很酷的帮助吗?
好的,一夜好眠后,我可以自己找到解决方案,非常简单:
在"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"
我在 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")——希望这是可能的
为了理解有什么很酷的帮助吗?
好的,一夜好眠后,我可以自己找到解决方案,非常简单:
在"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"