Skip to content

unison.signal — 信号系统

简单的信号/槽机制,用于对象间解耦通信。

使用方式

python
from unison import signal

SignalManager 类

信号管理器单例。

python
mgr = signal.SignalManager.get()

方法

方法说明
get()获取信号管理器单例
connect(source, signal_name, handler)连接信号
disconnect(source, signal_name)断开连接
emit(source, signal_name)发射信号
flush_deferred()刷新延迟信号

便捷函数

signal.connect(source, signal_name, callback)

连接信号到 Python 回调函数。

python
class MyObject: pass

source = MyObject()

def on_click():
    log.info("UI", "按钮被点击了!")

signal.connect(source, "clicked", on_click)

signal.emit(source, signal_name)

发射信号。

python
signal.emit(source, "clicked")

signal.disconnect(source, signal_name)

断开指定信号的连接。


Callable 类

python
c = signal.Callable()
方法说明
is_valid()是否有效
call()调用