質問編集履歴
1
コード編集
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
子ウインドウから親ウインドウの表示非表示を操作したい。
|
1
|
+
[wxpython] 子ウインドウから親ウインドウの表示・非表示を操作したい。
|
test
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
-
以下のコードは
|
2
|
-
|
3
|
-
[親画面から子画面の表示イベントはできますが、子画面の閉じるイベントができない](https://teratail.com/questions/137067)
|
4
|
-
|
5
|
-
|
1
|
+
子や孫ウインドウから親画面の表示・非表示を操作したいのですが、どのようにすればいけますでしょうか。
|
6
2
|
|
7
3
|
|
8
4
|
|
9
|
-
|
5
|
+
子ウインドウからは非表示には出来ないものなのでしょうか。
|
10
6
|
|
11
7
|
|
8
|
+
|
9
|
+
もしご存知の方いらっしゃいましたら、ご教授いただければ幸いです。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<開発環境>
|
14
|
+
|
15
|
+
windows10 64bit
|
16
|
+
|
17
|
+
python3.x
|
12
18
|
|
13
19
|
|
14
20
|
|
@@ -22,13 +28,13 @@
|
|
22
28
|
|
23
29
|
def __init__(self,parent):
|
24
30
|
|
25
|
-
wx.Frame.__init__(self,parent,wx.ID_ANY,"Grandchild frame",pos=(
|
31
|
+
wx.Frame.__init__(self,parent,wx.ID_ANY,"Grandchild frame",pos=(200,200))
|
26
32
|
|
27
33
|
|
28
34
|
|
29
35
|
pane2 = wx.Panel(self)
|
30
36
|
|
31
|
-
self.exitBtn = wx.Button(pane2,label="
|
37
|
+
self.exitBtn = wx.Button(pane2,label="Hide parent",pos=(10,10))
|
32
38
|
|
33
39
|
self.Bind(wx.EVT_BUTTON,self.exit2,self.exitBtn)
|
34
40
|
|
@@ -37,10 +43,6 @@
|
|
37
43
|
def exit2(self,event):
|
38
44
|
|
39
45
|
pass # 親ウインドウを非表示にしたい
|
40
|
-
|
41
|
-
self.Show(False)
|
42
|
-
|
43
|
-
|
44
46
|
|
45
47
|
|
46
48
|
|
@@ -54,7 +56,11 @@
|
|
54
56
|
|
55
57
|
pane2 = wx.Panel(self)
|
56
58
|
|
57
|
-
self.gchildBtn = wx.Button(pane2,label="show
|
59
|
+
self.gchildBtn = wx.Button(pane2,label="show grandchild",pos=(10,10))
|
60
|
+
|
61
|
+
self.hideBtn = wx.Button(pane2,label="Hide parent",pos=(150,10))
|
62
|
+
|
63
|
+
self.Bind(wx.EVT_BUTTON,self.showGchild,self.gchildBtn)
|
58
64
|
|
59
65
|
self.Bind(wx.EVT_BUTTON,self.showGchild,self.gchildBtn)
|
60
66
|
|
@@ -62,11 +68,15 @@
|
|
62
68
|
|
63
69
|
def showGchild(self,event):
|
64
70
|
|
65
|
-
# 画面を閉じるではなく非表示に
|
66
|
-
|
67
71
|
self.gchildFrame = GchildFrame(self)
|
68
72
|
|
69
73
|
self.gchildFrame.Show()
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
def hideparent(self,event):
|
78
|
+
|
79
|
+
pass #親ウインドウを非表示にしたい
|
70
80
|
|
71
81
|
|
72
82
|
|
@@ -82,11 +92,7 @@
|
|
82
92
|
|
83
93
|
self.showChildBtn = wx.Button(panel,label="show child",pos=(10,10))
|
84
94
|
|
85
|
-
self.exitBtn = wx.Button(panel,label="exit",pos=(100,10))
|
86
|
-
|
87
95
|
self.Bind(wx.EVT_BUTTON,self.showChild,self.showChildBtn)
|
88
|
-
|
89
|
-
self.Bind(wx.EVT_BUTTON,self.exit,self.exitBtn)
|
90
96
|
|
91
97
|
# 子画面を生成する
|
92
98
|
|
@@ -98,21 +104,11 @@
|
|
98
104
|
|
99
105
|
self.childFrame.Show()
|
100
106
|
|
101
|
-
return True
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
def exit(self, event):
|
106
|
-
|
107
|
-
self.childFrame.exit2(None)
|
108
|
-
|
109
|
-
|
110
|
-
|
111
107
|
|
112
108
|
|
113
109
|
if __name__ == '__main__':
|
114
110
|
|
115
|
-
app = wx.
|
111
|
+
app = wx.App()
|
116
112
|
|
117
113
|
frame = MyWindow(parent=None,id=-1)
|
118
114
|
|