如何使用动态类将信息从子类传递给 kvlang 中的父类?
我有以下简单的 kv 代码和 Python 代码:
千伏:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
mylabel: label_id
text: self.mylabel.text
<Button1@Button>:
Python:
import kivy
from kivy.app import App
class Test2App(App):
pass
if __name__ == '__main__':
Test2App().run()
这有效,使按钮的文本与标签的文本相同。
但我想做的是在父类中设置按钮的文本:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
mylabel: label_id
<Button1@Button>:
text: self.mylabel.text
这显然会导致错误,因为 Button1 不知道 mylabel。但我希望它是。我知道我可以通过在 Python 文件中声明一个属性来解决这个问题,但我宁愿在 kv 文件中单独有一个解决方案。
有谁知道如何做到这一点?
编辑:
有趣的是,我能够将信息作为 StringProperty 传递。以下代码有效,我在按钮上得到了正确的文本:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
my_label_text: label_id.text
<Button1@Button>:
my_label_text: ''
text: self.my_label_text
有谁知道我如何将整个标签(作为对象)传递给父级?