绑定到 Python 中的同一函数

发布于 2024-10-24 20:46:15 字数 536 浏览 6 评论 0原文

我需要使用两个事件将消息从子框架发送到主框架并关闭子框架(通过使用 pubsub)。其中一个事件是子框架上“取消”按钮的单击事件,另一个事件是子框架的关闭事件。因此,我对它们使用通用的“OnClose”函数。这是我的相关代码:

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

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

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

每次我关闭子框架时,它实际上并没有关闭,当我尝试从主框架重新打开子框架时,会在前一个子框架之上生成一个新的子框架。 实际上,我通过使用析构函数(del)内的代码解决了这个问题。但我很好奇为什么第一种方法不起作用。

提前致谢。

I need to use two events to send a message from child frame to main frame and close the child frame (by using pubsub). One of the events is the click event of a "Cancel" button on the child frame and the other one is the close event of the child frame. So I use a common "OnClose" function for both of them. Here is my related code:

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"),"")`

Every time I close my child frame, it actually doesnt close and when I try to reopen the child frame from the main frame, a new child frame is generated on top of the previous one.
Actually I solved this problem by using the code inside the destructor function (del). But I am curious why in the first method it doesnt work.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷︶言冷语的世界 2024-10-31 20:46:15

尝试颠倒 OnClose 方法中的调用顺序。首先放置 pubsub 调用,最后放置 Close 调用。或者只是在最后使用 Destroy() 而不是 Close()。

Try reversing the order of your calls in your OnClose method. Put the pubsub call first and the Close call last. Or just use Destroy() at the end instead of Close().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文