Ram*_*hum 1 python events signals wxpython event-handling
我甚至不确定如何提出这个问题.我想要的东西就像wxPython事件系统,但有点不同.我会试着解释一下.
当我的程序发生了某些变化时("树变化",不管那是什么),我想向程序中的所有小部件发送一个信号,通知他们发生了"树木变化",并且应该改变他们的显示作为回应.
我该怎么做呢?听起来有点像wxPython事件,但事实并非如此,因为据我所知,事件并没有传播到所有小部件.
这样做有什么好办法?
您可以编写自己的发布 - 订阅机制,这可以像这样简单:
def register(self, callback):
self.callbacks.append(callback)
def emit(self, eventName):
for callback in self.callbacks:
callback(eventName)
Run Code Online (Sandbox Code Playgroud)
任何有兴趣听取事件的人都会注册一个具有中央注册表的功能,然后你可以向感兴趣的各方发出一个事件,你可以通过注册一个特定的事件,拥有多个注册商,注册,错误检查等来进一步改进它.
或者你可以使用wxPython的wx.lib.pubsub模块或其他python库,如PyPubsub,PyDispatcher
归档时间: |
|
查看次数: |
771 次 |
最近记录: |