PySide6.QtCore.QSignalBlocker¶
- class QSignalBlocker¶
围绕
blockSignals()的异常安全包装器。更多…概要¶
方法¶
def
__init__()def
__enter__()def
__exit__()def
dismiss()def
reblock()def
unblock()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QSignalBlocker可以在任何你原本会使用一对 blockSignals() 调用的地方使用。它在构造函数中阻塞信号,并在析构函数中将状态重置为构造函数运行之前的状态。blocker = QSignalBlocker(someQObject) # no signals here
因此等同于
wasBlocked = someQObject.blockSignals(True) # no signals here someQObject.blockSignals(wasBlocked)
除了使用
QSignalBlocker的代码在面对异常时是安全的。另请参阅
QMutexLockerQEventLoopLocker这是一个重载函数。
调用
object.blockSignals(true)。- __init__(o)
- Parameters:
o –
QObject
构造函数。调用
object->blockSignals(true)。- __enter__()¶
- Return type:
- __exit__(arg__1, arg__2, arg__3)¶
- Parameters:
arg__1 – 对象
arg__2 – 对象
arg__3 – 对象
- dismiss()¶
解除
QSignalBlocker。它将不再访问传递给其构造函数的QObject。unblock()、reblock()以及~QSignalBlocker()将不再有效。- reblock()¶
在之前的
unblock()之后重新阻塞信号。reblock() 和
unblock()的调用次数不被计算,因此每次 reblock() 都会撤销任意数量的unblock()调用。- unblock()¶
暂时恢复
signalsBlocked()状态到QSignalBlocker构造函数运行之前的状态。要撤销,请使用reblock()。reblock()和 unblock() 调用的次数不被计算,因此每个 unblock() 都会撤销任意数量的reblock()调用。