2011-03-21 60 views
-2

我需要使用兩個事件從子框架向主框架發送消息並關閉子框架(通過使用pubsub)。其中一個事件是子框架上的「取消」按鈕的單擊事件,另一個事件是子框架的關閉事件。所以我對它們都使用了一個通用的「OnClose」函數。這裏是我的相關代碼:在Python中綁定相同的函數

self.Bind(wx.EVT_BUTTON, self.OnClose, id=cancel.GetId())

self.Bind(wx.EVT_CLOSE, self.OnClose)

def OnClose(self, event): 
    self.Close() 
    Pubsub().sendMessage(("show.mainframe"),"")` 

每次我閉上我的子框架,它實際上犯規密切,當我試圖重新打開從主框架中的子幀,新的子框架在前一個框架上生成。 其實我通過使用析構函數內的代碼解決了這個問題(del)。但我很好奇爲什麼在第一種方法中它不起作用。

在此先感謝。

+5

*但我遇到一個問題* - 會有什麼問題? – 2011-03-21 08:13:09

+4

你想讓我們猜測它是哪個問題嗎? *我哪裏錯了?*根據目前給出的信息,它可能是任何東西。 – 2011-03-21 08:13:23

+0

你應該發佈你正在使用的gui工具包。 Tkinter的? GTK? Qt的? – 2011-03-21 08:13:59

回答

2

嘗試在您的OnClose方法中調用您的調用順序。首先放置pubsub電話,最後放上關閉電話。或者在末尾使用Destroy()而不是Close()。

+0

Destroy()解決了我的問題,Mr.Driscoll。謝謝 – Shansal 2011-03-21 14:51:05