PySide6.QtCore.QSignalBlocker

class QSignalBlocker

围绕blockSignals()的异常安全包装器。更多

概要

方法

注意

本文档可能包含从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

__init__(o)
Parameters:

oQObject

这是一个重载函数。

调用 object.blockSignals(true)。

__init__(o)
Parameters:

oQObject

构造函数。调用 object->blockSignals(true)。

__enter__()
Return type:

QSignalBlocker

__exit__(arg__1, arg__2, arg__3)
Parameters:
  • arg__1 – 对象

  • arg__2 – 对象

  • arg__3 – 对象

dismiss()

解除QSignalBlocker。它将不再访问传递给其构造函数的QObjectunblock()reblock()以及~QSignalBlocker()将不再有效。

reblock()

在之前的unblock()之后重新阻塞信号。

reblock() 和 unblock() 的调用次数不被计算,因此每次 reblock() 都会撤销任意数量的 unblock() 调用。

unblock()

暂时恢复signalsBlocked()状态到QSignalBlocker构造函数运行之前的状态。要撤销,请使用reblock()

reblock() 和 unblock() 调用的次数不被计算,因此每个 unblock() 都会撤销任意数量的 reblock() 调用。