動的クラスを使用して、kvlang で子クラスからその親に情報を渡すにはどうすればよいですか?
次の単純な kv コードと Python コードがあります。
kv:
BoxLayout:
Label:
id: label_id
text: 'label'
Button1:
mylabel: label_id
text: self.mylabel.text
<Button1@Button>:
パイソン:
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
ラベル全体を(オブジェクトとして)親に渡す方法を知っている人はいますか?