本文介绍了如何从kivy文件(.kv)访问不同的类ID /部件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道些什么?
- 如果有ID按钮:button_b(Get_Boys类)被释放,然后用ID标签:label_g(Get_Girls类)必须改变
- 如果按键采用ID:button_b(Get_Boys类)是pressed,然后用ID标签:root_lbl(Get_People类)必须改变 。
- 如果按键采用ID:root_btn(Get_People类)被释放,然后用ID标签:label_b(Get_Boys类)必须改变
这是在this链接,而不是从来看初学者的角度。
我有2个文件
- test.py
- dates_test.kv
test.py
类Get_People(BoxLayout的):
高清__init __(自我,** kwargs):
超(Get_People,个体经营).__的init __(** kwargs)
类Get_Boys(BoxLayout的):
高清__init __(自我,** kwargs):
超(Get_Boys,个体经营).__的init __(** kwargs)类Get_Girls(BoxLayout的):
高清__init __(自我,** kwargs):
超(Get_Girls,个体经营).__的init __(** kwargs)类TestApp(APP):
高清版本(个体经营):
self.load_kv('dates_test.kv')
返回Get_People()
dates_test.kv文件
< Get_People计算值:
方向:垂直
按钮:
名称:root_btn
ID:root_btn
文字:我的根按钮
on_release:change_label_b
标签:
ID:root_lbl
文字:我的根标签
Get_Boys:
Get_Girls:&所述; Get_Boys计算值:
按钮:
ID:button_b
文字:按钮男孩
ON_ preSS:change_label_root
on_release:change_label_g
标签:
ID:label_b
文字:标签男孩&所述; Get_Girls计算值:
按钮:
ID:button_g
文字:巴顿女孩
标签:
ID:label_g
文字:标签的女孩
解决方案
嘛!看起来像我自己找到了答案,我想与大家分享吧。
首先让我们给ID,在dates_test.kv文件。这样就可以在python code或.kv文件访问它们。
< Get_People计算值:
stuff_p:root_lbl
...
Get_Boys:
编号:GB
Get_Girls:
ID:GG&所述; Get_Boys计算值:
stuff_b:label_b&所述; Get_Girls计算值:
stuff_c:label_g
你可能想知道什么是stuff_p,stuff_b和stuff_c ???
他们OBJECTPROPERTY在自己的类中定义。对于容易的份上,你可以把它们作为C语言的指针,您在stuff_b在你的Python code的变化使得label_b变化你kivy文件已经链接。
类Get_People(BoxLayout的):
stuff_p = OBJECTPROPERTY(无)
...类Get_Boys(BoxLayout的):
stuff_b = OBJECTPROPERTY(无)
...类Get_Girls(BoxLayout的):
stuff_c = OBJECTPROPERTY(无)
...
对于1部分和第二部分
In the Get_Boys class (test.py) define these methods.
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!"
let's see what happened here...
self.parent.ids.gg.stuff_c.text = "Boys changed Girls!"
- self.parent refers to Get_Parent class.
- .ids.gg refers to the id that we created above for Get_Girls.
- .stuff_c is used to refer label_g (above) in Get_Girls class.
- .text is used to change the text in the label.
and in the .kv file
<Get_Boys>:
stuff_b: label_b
Button:
id: button_b
text: "button 1"
on_release: root.change_girl()
on_press: root. change_people()
For Part 3
in the Get_People class (test.py) define a method.
def rooted(self):
self.ids.gb.stuff_b.text = "people changed boys!"
and in .kv file
Button:
id: root_btn
text: "I am Root"
on_release: root.rooted()
这篇关于如何从kivy文件(.kv)访问不同的类ID /部件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!