kivyを使って、ドラッグ&ドロップしたファイルをLabelで表示させたい
下の様なプログラムを作ったのですが、pythonからkv言語のidを参照するとMyRoot().ids["lbl"].textの行にエラーがでます。
Printの方ではパスが表示されています。
初心者質問で申し訳ないですが、idの使い方について何が問題なのか教えていただけますでしょうか。
発生している問題・エラーメッセージ
MyRoot().ids["lbl"].text = file_path KeyError: "lbl"
該当のソースコード
python
1from kivy.app import App 2from kivy.uix.label import Label 3from kivy.uix.boxlayout import BoxLayout 4from kivy.core.window import Window 5 6 7class MyRoot(BoxLayout): 8 pass 9 10class TestApp(App): 11 def build(self): 12 Window.bind(on_dropfile=self._on_file_drop) 13 return 14 15 def _on_file_drop(self, window, file_path): 16 print(file_path.decode("UTF-8")) 17 MyRoot().ids["lbl"].text = file_path 18 return 19 20TestApp().run() 21
kv
1MyRoot: 2 Label: 3 id:lbl 4 text:"File path is:" 5
補足情報(FW/ツールのバージョンなど)
使用しているのは
Python 3.7.7
Kivy 1.11.1
です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 05:16
2020/04/13 08:09
2020/04/13 09:00 編集
2020/04/13 13:39