回答編集履歴
1
補足を追加
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
単純にグローバルスコープに変更する事で解決するかとは思うのですが・・・、あまり薦められる方法ではありません。
|
6
|
+
|
7
|
+
[https://teratail.com/questions/129515](https://teratail.com/questions/129515)
|
6
8
|
|
7
9
|
|
8
10
|
|
@@ -33,3 +35,63 @@
|
|
33
35
|
```
|
34
36
|
|
35
37
|
とWidgetの名前からListbox Widgetを取得します。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
【追記】
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
動作させてみたところ他にも同様のエラーの箇所があるようです。
|
52
|
+
|
53
|
+
下記の箇所で同様に``hou_entry``と``minute`` をそれぞれ参照できないとのエラーとなります。
|
54
|
+
|
55
|
+
こちらに関しては上と違いWidgetのOwnerが別Windowなので一工夫が必用です。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
まず、現状ボタンを生成する際に
|
60
|
+
|
61
|
+
```Python
|
62
|
+
|
63
|
+
okb = Button(adding,text="Ok",command=add_ok)
|
64
|
+
|
65
|
+
```
|
66
|
+
|
67
|
+
としている箇所を
|
68
|
+
|
69
|
+
```Python
|
70
|
+
|
71
|
+
okb = Button(adding,text="Ok",command=lambda : add_ok(adding))
|
72
|
+
|
73
|
+
```
|
74
|
+
|
75
|
+
のように変更し、``lambda``を使って ``add_ok()``関数の引数としてOwnerとなるWindowを渡すように修正してください。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
あとは上と同様に
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
```Python
|
84
|
+
|
85
|
+
def add_ok(owner):
|
86
|
+
|
87
|
+
hour_entry = owner.children['hour_entry'] #<- Widget名は適当
|
88
|
+
|
89
|
+
minute = owner.children['minute_entry'] #<- Widget名は適当
|
90
|
+
|
91
|
+
# 以下省略
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
のようにすることで、同じWindowにある Entry Widget を取得できるようになるかと思います。
|