2010-06-24 28 views
1

我正在研究需要使用各種對話框的應用程序。如果有人在解除對話框之前關閉應用程序,我無法以確保我的對話框正確銷燬的方式獲取事件綁定。我希望用這樣的:wxPython應用程序 - 確保所有對話框被銷燬

class Form(wx.Dialog): 
def __init__(self): 
    wx.Dialog.__init__(None, -1, "Dialog") 
    self.Bind(wx.EVT_CLOSE, self.onClose) 
    self.Bind(wx.EVT_CLOSE, self.onClose, MAIN_WINDOW) 
    ... 
def onClose(self, evt): 
    self.Destroy() 

我目前遇到的問題是,如果有人打開一個對話框,然後關閉對話框,應用程序不會完全退出之前關閉應用程序。 MAIN_WINDOW是對已註冊爲我的頂級窗口的框架的引用。提前致謝!

回答

1

我試圖不正確地使用事件冒泡。解決方案是確保對話框是頂層窗口的子項,這樣應用程序退出時也會強制對話框銷燬。

class Form(wx.Dialog): 
def __init__(self): 
    wx.Dialog.__init__(MAIN_WINDOW, -1, "Dialog") 
    self.Bind(wx.EVT_CLOSE, self.onClose) 
    ... 
def onClose(self, evt): 
    self.Destroy()