11
メインフレームが閉じたときに子フレームも閉じられるように、メインフレームの子である新しいフレームをwxPythonで作成しようとしています。ここでwxPythonでメインフレームの子フレームを作成する
は私が午前問題の簡単な例です:
#! /usr/bin/env python
import wx
class App(wx.App):
def OnInit(self):
frame = MainFrame()
frame.Show()
self.SetTopWindow(frame)
return True
class MainFrame(wx.Frame):
title = "Main Frame"
def __init__(self):
wx.Frame.__init__(self, None, 1, self.title) #id = 5
menuFile = wx.Menu()
menuAbout = wx.Menu()
menuAbout.Append(2, "&About...", "About this program")
menuBar = wx.MenuBar()
menuBar.Append(menuAbout, "&Help")
self.SetMenuBar(menuBar)
self.CreateStatusBar()
self.Bind(wx.EVT_MENU, self.OnAbout, id=2)
def OnQuit(self, event):
self.Close()
def OnAbout(self, event):
AboutFrame().Show()
class AboutFrame(wx.Frame):
title = "About this program"
def __init__(self):
wx.Frame.__init__(self, 1, -1, self.title) #trying to set parent=1 (id of MainFrame())
if __name__ == '__main__':
app = App(False)
app.MainLoop()
私は(ライン48上)なしにAboutFrameの親フレームを設定した場合、その後についてフレームが正常に作成され、表示されますが、それは開いたままにされますメインフレームが閉じられたときに、
これは、メインフレームの子フレームを作成するために取るべきアプローチですか、それとも別の方法で行うべきですか。メインフレームのonCloseイベントを使用して子フレームを閉じます(これは非常に「ハッキリ」と聞こえます)。
私が正しいアプローチをとっているのであれば、それはなぜ機能しないのですか?