editor.common.dispatcher
This module provide global signal toolkit.
Typical usage example:
1from editor.common.dispatcher import dispatcher
2
3def listener1(): print(f'listener1')
4def listener2(data): print(f'listener2: {data}')
5def listener3(data, sender): print(f'listener3: {data}, {sender}')
6
7dispatcher.connectSignal('foo', listener1)
8dispatcher.connectSignal('foo', listener2)
9dispatcher.disconnectSignal('foo', listener2)
10dispatcher.connectSignal('bar', listener2)
11dispatcher.connectSignal('bar', listener3)
12
13sender = 1 # can be any type, sender is just a general identity
14dispatcher.emitSignal('foo', 'test_data', sender)
15dispatcher.emitSignal('bar', 'test_data', sender)
Module Contents
- class editor.common.dispatcher.Dispatcher[source]
Bases:
PySide6.QtCore.QObject
Handle general global signal stuff.
In most situation, this
Dispatcher
class do not need be instanced by user. The built-indispatcher
instance is fully meet the needs.- sig[source]
A qt signal attribute, all functions are built on this.
- Type:
PySide6.QtCore.Signal(str, any, any)
- connectSignal(msg, listener)[source]
Register a listenter of certain message.
- Parameters:
msg (str) – Message to listener.
listener (function) – Called when listenered message emitted.
- disconnectSignal(msg, listener)[source]
Unregister a listenter of certain message.
- Parameters:
msg (str) – Message to remove from.
listener (function) – Listener to remove.