Skip to main content
 首页 » 编程设计

python之wxPython:向多个小部件发送信号

2025年05月04日18thcjp

我什至不知道怎么问这个问题。我想要类似于 wxPython 事件系统但又有点不同的东西。我会尽力解释。

当我的程序发生某种变化时(“树变化”,不管那是什么,)我想向我程序中的所有小部件发送一个信号,通知它们发生了“树变化” ,他们应该改变他们的显示作为回应。

我该怎么做?这听起来有点像 wxPython 事件,但实际上并非如此,因为据我所知,事件不会传播到所有小部件。

执行此操作的好方法是什么?

请您参考如下方法:

您可以编写自己的发布-订阅机制,可以这么简单:

def register(self, callback): 
    self.callbacks.append(callback) 
 
def emit(self, eventName): 
    for callback in self.callbacks: 
         callback(eventName) 

任何对监听事件感兴趣的人都可以使用中央注册表注册一个函数,然后您可以向感兴趣的各方发送一个事件,您可以通过必须注册特定事件、拥有多个注册商、取消注册、错误检查等来进一步改进它

或者你可以使用 wxPython 的 wx.lib.pubsub模块或其他 python 库,如 PyPubsub , PyDispatcher