Как передать информацию из дочернего класса в родительский элемент в kvlang, используя динамические классы?Передача информации из дочернего класса в родительский, с использованием динамических классов в kvlang (Kivy)
У меня есть следующий простой код Kv и Python код:
киловольт:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
mylabel: label_id
text: self.mylabel.text
<[email protected]>:
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
<[email protected]>:
text: self.mylabel.text
Это, очевидно, приводит к ошибке, потому что Button1 не знает MyLabel. Но я хочу, чтобы это было. Я знаю, что могу решить это, объявив свойство в файле Python, но я предпочел бы иметь решение внутри файла kv.
У кого-нибудь есть идея, как это сделать?
EDIT:
Интересно, что я могу передать информацию как StringProperty. Следующий код работает, и я получаю правильный текст на моей кнопке:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
my_label_text: label_id.text
<[email protected]>:
my_label_text: ''
text: self.my_label_text
Кто-нибудь знает, как я могу передать всю этикетку (как объект) к родителю?
Спасибо за ответ. Проблема в том, что информация не передается от дочернего элемента к родительскому. Я получаю кнопку без текста. – yoel
Ах, я думаю, что в моем примере есть ошибка, позже будет исправлено. – inclement
Я только что узнал, что могу передавать информацию как StringProperty. См. Отредактированный вопрос – yoel