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
的代码在面对异常时是安全的。另请参阅
QMutexLocker
QEventLoopLocker
这是一个重载函数。
调用
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()
调用。