質問編集履歴
6
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -75,12 +75,13 @@
|
|
75
75
|
```
|
76
76
|
|
77
77
|
# 追記
|
78
|
-
ラズパイで
|
78
|
+
ラズパイで、最前面ウィンドウのみ閉じる・最大化ボタンのみ効くように変更。
|
79
79
|
```Python
|
80
80
|
import tkinter as tk
|
81
81
|
|
82
82
|
def open_sub2_win(win, sub1_win):
|
83
83
|
global win_flag, sub1_flag, sub2_flag
|
84
|
+
sub1_win.resizable(0, 0)
|
84
85
|
win_flag = False
|
85
86
|
sub1_flag = False
|
86
87
|
sub2_flag = True
|
@@ -91,11 +92,11 @@
|
|
91
92
|
sub2_win.transient(sub1_win)
|
92
93
|
sub2_win.grab_set()
|
93
94
|
sub2_win.focus_set()
|
94
|
-
sub2_win.protocol("WM_DELETE_WINDOW", lambda:close_sub2_win(sub2_win))
|
95
|
+
sub2_win.protocol("WM_DELETE_WINDOW", lambda:close_sub2_win(sub1_win, sub2_win))
|
95
96
|
|
96
97
|
|
97
98
|
|
98
|
-
def close_sub2_win(sub2_win):
|
99
|
+
def close_sub2_win(sub1_win, sub2_win):
|
99
100
|
global win_flag, sub1_flag, sub2_flag
|
100
101
|
if sub2_flag == True:
|
101
102
|
sub2_win.grab_release()
|
@@ -103,10 +104,12 @@
|
|
103
104
|
win_flag = False
|
104
105
|
sub1_flag = True
|
105
106
|
sub2_flag = False
|
107
|
+
sub1_win.resizable(1, 1)
|
106
108
|
|
107
109
|
|
108
110
|
def open_sub1_win(win):
|
109
111
|
global win_flag, sub1_flag, sub2_flag
|
112
|
+
win.resizable(0, 0)
|
110
113
|
win_flag = False
|
111
114
|
sub1_flag = True
|
112
115
|
sub2_flag = False
|
@@ -117,13 +120,13 @@
|
|
117
120
|
sub1_win.transient(win)
|
118
121
|
sub1_win.grab_set()
|
119
122
|
sub1_win.focus_set()
|
120
|
-
sub1_win.protocol("WM_DELETE_WINDOW", lambda:close_sub1_win(sub1_win))
|
123
|
+
sub1_win.protocol("WM_DELETE_WINDOW", lambda:close_sub1_win(win, sub1_win))
|
121
124
|
btn = tk.Button(sub1_win, text="open_sub2_win", command=lambda:open_sub2_win(win, sub1_win))
|
122
125
|
btn.grid()
|
123
126
|
|
124
127
|
|
125
128
|
|
126
|
-
def close_sub1_win(sub1_win):
|
129
|
+
def close_sub1_win(win, sub1_win):
|
127
130
|
global win_flag, sub1_flag, sub2_flag
|
128
131
|
if sub1_flag == True:
|
129
132
|
sub1_win.grab_release()
|
@@ -131,6 +134,7 @@
|
|
131
134
|
win_flag = True
|
132
135
|
sub1_flag = False
|
133
136
|
sub2_flag = False
|
137
|
+
win.resizable(1, 1)
|
134
138
|
|
135
139
|
def close_win(win):
|
136
140
|
global win_flag, sub1_flag, sub2_flag
|
@@ -150,4 +154,5 @@
|
|
150
154
|
|
151
155
|
win.protocol("WM_DELETE_WINDOW", lambda:close_win(win))
|
152
156
|
win.mainloop()
|
157
|
+
|
153
158
|
```
|
5
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -72,4 +72,82 @@
|
|
72
72
|
btn.grid()
|
73
73
|
|
74
74
|
win.mainloop()
|
75
|
+
```
|
76
|
+
|
77
|
+
# 追記
|
78
|
+
ラズパイでも最前面の閉じるボタンのみ効くように変更。
|
79
|
+
```Python
|
80
|
+
import tkinter as tk
|
81
|
+
|
82
|
+
def open_sub2_win(win, sub1_win):
|
83
|
+
global win_flag, sub1_flag, sub2_flag
|
84
|
+
win_flag = False
|
85
|
+
sub1_flag = False
|
86
|
+
sub2_flag = True
|
87
|
+
|
88
|
+
sub2_win = tk.Toplevel()
|
89
|
+
sub2_win.title("sub2_win")
|
90
|
+
sub2_win.geometry("300x300+200+200")
|
91
|
+
sub2_win.transient(sub1_win)
|
92
|
+
sub2_win.grab_set()
|
93
|
+
sub2_win.focus_set()
|
94
|
+
sub2_win.protocol("WM_DELETE_WINDOW", lambda:close_sub2_win(sub2_win))
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
def close_sub2_win(sub2_win):
|
99
|
+
global win_flag, sub1_flag, sub2_flag
|
100
|
+
if sub2_flag == True:
|
101
|
+
sub2_win.grab_release()
|
102
|
+
sub2_win.destroy()
|
103
|
+
win_flag = False
|
104
|
+
sub1_flag = True
|
105
|
+
sub2_flag = False
|
106
|
+
|
107
|
+
|
108
|
+
def open_sub1_win(win):
|
109
|
+
global win_flag, sub1_flag, sub2_flag
|
110
|
+
win_flag = False
|
111
|
+
sub1_flag = True
|
112
|
+
sub2_flag = False
|
113
|
+
|
114
|
+
sub1_win = tk.Toplevel()
|
115
|
+
sub1_win.title("sub1_win")
|
116
|
+
sub1_win.geometry("300x300+100+100")
|
117
|
+
sub1_win.transient(win)
|
118
|
+
sub1_win.grab_set()
|
119
|
+
sub1_win.focus_set()
|
120
|
+
sub1_win.protocol("WM_DELETE_WINDOW", lambda:close_sub1_win(sub1_win))
|
121
|
+
btn = tk.Button(sub1_win, text="open_sub2_win", command=lambda:open_sub2_win(win, sub1_win))
|
122
|
+
btn.grid()
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
def close_sub1_win(sub1_win):
|
127
|
+
global win_flag, sub1_flag, sub2_flag
|
128
|
+
if sub1_flag == True:
|
129
|
+
sub1_win.grab_release()
|
130
|
+
sub1_win.destroy()
|
131
|
+
win_flag = True
|
132
|
+
sub1_flag = False
|
133
|
+
sub2_flag = False
|
134
|
+
|
135
|
+
def close_win(win):
|
136
|
+
global win_flag, sub1_flag, sub2_flag
|
137
|
+
if win_flag == True:
|
138
|
+
win.destroy()
|
139
|
+
|
140
|
+
win_flag = True
|
141
|
+
sub1_flag = False
|
142
|
+
sub2_flag = False
|
143
|
+
|
144
|
+
win = tk.Tk()
|
145
|
+
win.title("win")
|
146
|
+
win.geometry("300x300+0+0")
|
147
|
+
|
148
|
+
btn = tk.Button(win, text="open_sub1_win", command=lambda:open_sub1_win(win))
|
149
|
+
btn.grid()
|
150
|
+
|
151
|
+
win.protocol("WM_DELETE_WINDOW", lambda:close_win(win))
|
152
|
+
win.mainloop()
|
75
153
|
```
|
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
実現したいこと
|
1
|
+
# 実現したいこと
|
2
2
|
|
3
3
|
Python実行時にウィンドウにあるボタンを押すと、ポップアップウィンドウが最前面に1つ表示される。
|
4
4
|
ポップアップが開いている間は、後ろのウィンドウを操作できなくする
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -31,8 +31,8 @@
|
|
31
31
|
Windowsのような挙動が理想ですが、Raspberry Piで同じ挙動を実現させるための対処方法はありますか。
|
32
32
|
|
33
33
|
|
34
|
+
# ソースコード
|
34
35
|
|
35
|
-
|
36
36
|
```Python
|
37
37
|
import tkinter as tk
|
38
38
|
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,12 +25,14 @@
|
|
25
25
|
|
26
26
|
(ここでいうアクティブとは、添付画像のようにウィンドウが選択状態であることです。タイトルバーが青くなっている部分です。)
|
27
27
|
|
28
|
+

|
29
|
+
|
28
30
|
# 質問
|
29
31
|
Windowsのような挙動が理想ですが、Raspberry Piで同じ挙動を実現させるための対処方法はありますか。
|
30
32
|
|
31
|
-

|
32
33
|
|
33
34
|
|
35
|
+
|
34
36
|
```Python
|
35
37
|
import tkinter as tk
|
36
38
|
|
1
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -28,7 +28,9 @@
|
|
28
28
|
# 質問
|
29
29
|
Windowsのような挙動が理想ですが、Raspberry Piで同じ挙動を実現させるための対処方法はありますか。
|
30
30
|
|
31
|
+

|
31
32
|
|
33
|
+
|
32
34
|
```Python
|
33
35
|
import tkinter as tk
|
34
36
|
|