回答編集履歴

3

簡易的なコード修正

2020/12/05 04:30

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -13,6 +13,28 @@
13
13
  ウィンドウを2つ以上開きたい場合は Toplevel を用います。
14
14
 
15
15
  詳しくはtkinterでのダイアログの作成方法を調べてみてください。
16
+
17
+
18
+
19
+ ```diff
20
+
21
+ # 簡易的な修正方法: set_up 関数内
22
+
23
+
24
+
25
+ - root = Tk()
26
+
27
+ + root = Toplevel()
28
+
29
+
30
+
31
+ - root.mainloop()
32
+
33
+ + root.grab_set()
34
+
35
+ + root.wait_window(root)
36
+
37
+ ```
16
38
 
17
39
 
18
40
 

2

変数v1 について、クロージャは参照を保持するので説明を訂正

2020/12/05 04:30

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -52,6 +52,46 @@
52
52
 
53
53
 
54
54
 
55
+ 訂正:
56
+
57
+ `command=lambda: print("v1=%s" %v1.get()` の lambda は v1 の参照を保持する為、
58
+
59
+ 今回のコードではv1変数の生存期間の問題はなしでした。
60
+
61
+ 但し、v1を参照しなくなった時点で問題が起こる為、コード変更の際にバグの原因になりやすい
62
+
63
+ 明示的に何処かに保持したほうが良いです。
64
+
65
+
66
+
67
+
68
+
69
+ 他の問題
70
+
71
+ - finish 関数内の変数 root は未定義
72
+
73
+ - Button と Labelframe 内のウィジェットの grid のポジション指定。
74
+
75
+  Radiobutton は Labelframe の子ウィジェットなので、Button と同列の配置にはならない
76
+
77
+
78
+
79
+ ```
80
+
81
+ Frame
82
+
83
+ Labelframe grid(row=0, column=0)
84
+
85
+ Radiobutton grid(row=0, column=0) ※ Labelframe 内でのgrid配置
86
+
87
+ Radiobutton grid(row=0, column=1)
88
+
89
+ Button grid(row=1, column=0) ※ row=2
90
+
91
+ ```
92
+
93
+
94
+
55
95
  ----
56
96
 
57
97
  関連

1

文章の修正。問題にならない可能性もある、コード次第

2020/12/05 04:26

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  もう一点は、今回のケースでの直接的な問題ではありませんが
26
26
 
27
- ダイアログ化する場合に問題になる点で、
27
+ ダイアログ化する場合に問題になるかもしれない点で、
28
28
 
29
29
  StringVar の変数 v1 は関数終了時に破棄されます。
30
30