成员函数文档
[explicit noexcept] QSignalBlocker::QSignalBlocker(QObject *object)
构造函数。调用object->blockSignals(true)。
[explicit noexcept] QSignalBlocker::QSignalBlocker(QObject &object)
调用object.blockSignals(true)。
这是一个重载函数。
[noexcept] QSignalBlocker::QSignalBlocker(QSignalBlocker &&other)
移动--从other 构造一个信号阻断器。other 将有一个无操作的析构函数,而恢复QObject::signalsBlocked() 状态的责任将转移到新对象。
[noexcept] QSignalBlocker::~QSignalBlocker()
销毁器。将QObject::signalsBlocked() 恢复到构造函数运行前的状态,除非调用了unblock() 而没有调用reblock() ,否则不做任何操作。
[noexcept, since 6.7] void QSignalBlocker::dismiss()
解散QSignalBlocker 。它将不再访问传递给其构造函数的QObject 。unblock()、reblock() 以及 ~QSignalBlocker() 将不起作用。
此函数在 Qt 6.7 中引入。
[noexcept] void QSignalBlocker::reblock()
在之前的unblock() 之后重新阻断信号。
reblock() 和unblock() 的调用次数不会计算在内,因此每次 reblock() 都会撤销任何次数的unblock() 调用。
[noexcept] void QSignalBlocker::unblock()
将QObject::signalsBlocked() 暂时恢复到QSignalBlocker 的构造函数运行之前的状态。要撤销,请使用reblock() 。
reblock() 和 unblock() 的调用次数不会计算在内,因此每次 unblock() 都会撤销任意次数的reblock() 调用。
[noexcept] QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other)
移动将此信号屏蔽器从other 指定。other 将有一个无操作的析构函数,而恢复QObject::signalsBlocked() 状态的责任将转移到此对象。
该信号屏蔽程序在被移动之前屏蔽的对象信号(如果有)将被解除屏蔽,除非两个实例屏蔽了同一对象的信号,并且在移动时*this 被解除屏蔽,而other 未被解除屏蔽。