【问题标题】:Bind to same function in Python在 Python 中绑定到相同的函数
【发布时间】:2011-07-19 12:18:12
【问题描述】:

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

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)中的代码解决了这个问题。但是我很好奇为什么在第一种方法中它不起作用。

提前致谢。

【问题讨论】:

  • 但我遇到了问题 - 那会是什么问题?
  • 你想让我们猜猜是哪个问题吗? 我哪里出错了?根据目前提供的信息,它可能是任何东西。
  • 您应该发布您正在使用的 gui 工具包。特金特? GTK? Qt?
  • 我们应该猜猜您使用的是什么工具包?精确的问题怎么样?
  • 嗯,它的标签是“wxpython”,而且他的一些东西前面加了“wx”......

标签: python wxpython publish-subscribe


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2022-01-16
    • 2012-07-20
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多