好吧,看来我自己找到了答案,我想分享一下。
首先,让我们在dates_test.kv文件中输入“ id”。这样您就可以使用python代码或.kv文件访问它们。
<Get_People>: stuff_p: root_lbl ... Get_Boys: id: gb Get_Girls: id: gg<Get_Boys>: stuff_b: label_b<Get_Girls>: stuff_c: label_g
您可能想知道什么是stuff_p,stuff_b和stuff_c ???
它们是在自己的类中定义的ObjectProperty。当您链接到kivy文件时,您在python代码中的stuff_b中所做的更改将在label_b中进行更改。
class Get_People(BoxLayout): stuff_p = ObjectProperty(None) ...class Get_Boys(BoxLayout): stuff_b = ObjectProperty(None) ...class Get_Girls(BoxLayout): stuff_c = ObjectProperty(None) ...
对于第1部分和第2部分
如果释放具有ID:button_b(Get_Boys类)的按钮,则必须更改具有ID:label_g(Get_Girls类)的Label。
如果按下ID为:button_b的Button(Get_Boys类),则ID为root_lbl的Label(Get_People类)必须更改。
在Get_Boys类(test.py)中定义这些方法。
def change_girl(self): self.parent.ids.gg.stuff_c.text = "Boys changed Girls!" #self.stuff_b.text = "i changed myself!"def change_people(self): self.parent.ids.root_lbl.text = "Boys changed people!"
让我们看看这里发生了什么…
self.parent.ids.gg.stuff_c.text =“男孩变了女孩!”
- self.parent引用Get_Parent类。
- .ids.gg是我们上面为Get_Girls创建的ID。
- .stuff_c用于引用Get_Girls类中的label_g(上方)。
- .text用于更改标签中的文本。
并在.kv文件中
<Get_Boys>: stuff_b: label_b Button: id: button_b text: "button 1" on_release: root.change_girl() on_press: root. change_people()
对于第3部分
3.
如果发布了ID为:root_btn(Get_People类)的Button,则ID为:label_b(Get_Boys类)的Label必须更改。
在Get_People类(test.py)中定义一个方法。
def rooted(self): self.ids.gb.stuff_b.text = "people changed boys!"
并在.kv文件中
Button: id: root_btn text: "I am Root" on_release: root.rooted()



