質問編集履歴

1

コード編集

2020/03/18 08:28

投稿

yamatail
yamatail

スコア77

test CHANGED
@@ -1 +1 @@
1
- 子ウインドウから親ウインドウの表示非表示を操作したい。 wxpython
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=(100,100))
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="親・非表示",pos=(100,10))
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 ",pos=(100,10))
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.PySimpleApp()
111
+ app = wx.App()
116
112
 
117
113
  frame = MyWindow(parent=None,id=-1)
118
114