1

動的クラスを使用して、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

ラベル全体を(オブジェクトとして)親に渡す方法を知っている人はいますか?

4

1 に答える 1