回答編集履歴

2

追記

2021/04/13 12:44

投稿

gottadiveintopy
gottadiveintopy

スコア736

test CHANGED
@@ -1 +1,111 @@
1
- `handtracking`というmoduleのcodeが無いのでこっちの環境でcodeを実行することが出来ません。こういった質問サイトで訊く時は実行に必要な物を全て載せて、読んだ人が自分で動作確認できるようにしてあげたほうが良いです。それから載せるcodeはできるだけ不具合を再現できる最小限の物にして欲しいです。そうする事で読む人の負担が減るだけじゃなく、多くの場合その過程で問題の原因が分かるから
1
+ `handtracking`というmoduleのcodeが無いのでこっちの環境でcodeを実行することが出来ません。こういった質問サイトで訊く時は実行に必要な物を全て載せて、読んだ人が自分で動作確認できるようにしてあげたほうが良いです。それから載せるcodeはできるだけ不具合を再現できる最小限の物にして欲しいです。そうする事で読む人の負担が減るだけじゃなく、多くの場合その過程で問題の原因が分かるので
2
+
3
+
4
+
5
+ # 追記:気づいた問題点
6
+
7
+
8
+
9
+ python上で作っている以下の`image_L`と`image_R`は
10
+
11
+
12
+
13
+ ```python
14
+
15
+ class SmartGlassWidget(Widget):
16
+
17
+ def __init__(self, **kwargs):
18
+
19
+ self.image_L = Image(source=self.image_L_src)
20
+
21
+ self.image_R = Image(source=self.image_R_src)
22
+
23
+ ```
24
+
25
+
26
+
27
+ Kv言語上の以下の2つの`Image`
28
+
29
+
30
+
31
+ ```kv
32
+
33
+ <SmartGlassWidget>:
34
+
35
+ BoxLayout:
36
+
37
+ BoxLayout:
38
+
39
+ Image:
40
+
41
+ source: root.image_L_src
42
+
43
+ Image:
44
+
45
+ source: root.image_R_src
46
+
47
+ ```
48
+
49
+
50
+
51
+ とは別物です。なので現在のcodeだとwidget treeに繋げていないimage、つまり画面上に表示されていないimageの`.reload()`を呼び続けている事になります。正しくは以下のようにKv言語上でimageにidを割り当てて
52
+
53
+
54
+
55
+ ```kv
56
+
57
+ <SmartGlassWidget>:
58
+
59
+ BoxLayout:
60
+
61
+ BoxLayout:
62
+
63
+ Image:
64
+
65
+ id: image_L
66
+
67
+ source: root.image_L_src
68
+
69
+ Image:
70
+
71
+ id: image_R
72
+
73
+ source: root.image_R_src
74
+
75
+ ```
76
+
77
+
78
+
79
+ python側から以下のようにimageを参照します。
80
+
81
+
82
+
83
+ ```python
84
+
85
+ def update(self,dt):
86
+
87
+ print("更新")
88
+
89
+ self.handtrackingApp.run()
90
+
91
+ self.ids.image_L.reload()
92
+
93
+ ```
94
+
95
+
96
+
97
+ そしてpython側で作る必要は無いので
98
+
99
+
100
+
101
+ ```python
102
+
103
+ self.image_L = Image(source=self.image_L_src)
104
+
105
+ self.image_R = Image(source=self.image_R_src)
106
+
107
+ ```
108
+
109
+
110
+
111
+ は消してください。

1

表現の修正

2021/04/13 12:44

投稿

gottadiveintopy
gottadiveintopy

スコア736

test CHANGED
@@ -1,5 +1 @@
1
- `handtracking`というmoduleのcodeが無いのでこっちの環境でcodeを実行することが出来ません。こういった質問サイトで訊く時は実行に必要な物を全て載せて、回答者が自分で動作確認できるようにしてあげたほうが良いです。
2
-
3
-
4
-
5
- それから載せるcodeはできるだけ不具合を再現できる最小限の物にしてください。そうする事で回答者側の負担が減るだけじゃなく、多くの場合その過程で不具合の原因が分かるからです。
1
+ `handtracking`というmoduleのcodeが無いのでこっちの環境でcodeを実行することが出来ません。こういった質問サイトで訊く時は実行に必要な物を全て載せて、読んだ人が自分で動作確認できるようにしてあげたほうが良いです。それから載せるcodeはできるだけ不具合を再現できる最小限の物にして欲しいです。そうする事で読む人の負担が減るだけじゃなく、多くの場合その過程で問題の原因が分かるから。