子や孫ウインドウから親画面の表示・非表示を操作したいのですが、どのようにすればいけますでしょうか。
子ウインドウからは非表示には出来ないものなのでしょうか。
もしご存知の方いらっしゃいましたら、ご教授いただければ幸いです。
<開発環境>
windows10 64bit
python3.x
python
1import wx 2 3class GchildFrame(wx.Frame): 4 def __init__(self,parent): 5 wx.Frame.__init__(self,parent,wx.ID_ANY,"Grandchild frame",pos=(200,200)) 6 7 pane2 = wx.Panel(self) 8 self.exitBtn = wx.Button(pane2,label="Hide parent",pos=(10,10)) 9 self.Bind(wx.EVT_BUTTON,self.exit2,self.exitBtn) 10 11 def exit2(self,event): 12 pass # 親ウインドウを非表示にしたい 13 14class ChildFrame(wx.Frame): 15 def __init__(self,parent): 16 wx.Frame.__init__(self,parent,wx.ID_ANY,"child frame",pos=(100,100)) 17 18 pane2 = wx.Panel(self) 19 self.gchildBtn = wx.Button(pane2,label="show grandchild",pos=(10,10)) 20 self.hideBtn = wx.Button(pane2,label="Hide parent",pos=(150,10)) 21 self.Bind(wx.EVT_BUTTON,self.showGchild,self.gchildBtn) 22 self.Bind(wx.EVT_BUTTON,self.showGchild,self.gchildBtn) 23 24 def showGchild(self,event): 25 self.gchildFrame = GchildFrame(self) 26 self.gchildFrame.Show() 27 28 def hideparent(self,event): 29 pass #親ウインドウを非表示にしたい 30 31class MyWindow(wx.Frame): 32 33 def __init__(self, parent, id): 34 wx.Frame.__init__(self,parent,wx.ID_ANY,"main frame") 35 panel = wx.Panel(self) 36 self.showChildBtn = wx.Button(panel,label="show child",pos=(10,10)) 37 self.Bind(wx.EVT_BUTTON,self.showChild,self.showChildBtn) 38 # 子画面を生成する 39 self.childFrame = ChildFrame(self) 40 41 def showChild(self,event): 42 self.childFrame.Show() 43 44if __name__ == '__main__': 45 app = wx.App() 46 frame = MyWindow(parent=None,id=-1) 47 frame.Show() 48 app.MainLoop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/24 02:18