teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/04/13 07:01

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -39,7 +39,7 @@
39
39
  ```
40
40
 
41
41
  MyRootにプロパティを持たせることにします。
42
- Labelから見ると親要素のプロパティなので、parentを参照する。
42
+ Labelから見ると親要素のプロパティなので、parentを参照する。(追記 `root.file_path`でも良い)
43
43
 
44
44
  ```kv
45
45
  MyRoot:

1

エラーの原因

2020/04/13 07:01

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -46,4 +46,22 @@
46
46
  Label:
47
47
  id: lbl
48
48
  text:"File path is: " + self.parent.file_path
49
+ ```
50
+
51
+ ----
52
+ 追記: エラーの原因
53
+
54
+ ```
55
+ # _on_file_drop 内で MyRoot() を生成していますが、
56
+
57
+ MyRoot().ids["lbl"].text = file_path
58
+
59
+ # ここで生成されるクラスは、以下の空の MyRoot クラスで、
60
+ # ラベル等の情報を持ちません。
61
+
62
+ class MyRoot(BoxLayout):
63
+ pass
64
+
65
+ # build() が何も返さなかった場合、kivy は kvファイルからウィジェットを生成し
66
+ # root属性に設定します。
49
67
  ```