signal

警告

这部分内容涉及 JAnim 实现原理,可能较为复杂,若没有研究源码的需求,你应酌情阅读

class janim.utils.signal.Signal(func: Callable[[Concatenate[T, P]], R])

基类:Generic[T, P, R]

objects_with_slots: WeakSet = set()
self_slot(func=None, /, *, key: str = '')

被修饰的方法会在 Signal 触发时被调用

self_refresh(func=None, *, key: str = '')

被修饰的方法会在 Signal 触发时,标记需要重新计算

self_refresh_with_recurse(*, recurse_up: bool = False, recurse_down: bool = False, key: str = '')

被修饰的方法会在 Signal 触发时,标记需要重新计算

并且会根据 recurse_uprecurse_down 进行递归传递

connect(sender: object, func: Callable, *, key: str = '') None

使 func 会在 Signal 触发时被调用

connect_refresh(sender: object, obj: object, func: Callable | str, *, key: str = '') None

使 func 会在 Signal 触发时被标记为需要重新计算

emit(sender: object, *args, key: str = '', **kwargs)