2011-03-21 49 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

相关问题