QSignalBlocker Class
QObject::blockSignals() 주변의 예외 안전 래퍼. 더 보기...
헤더: | #include <QSignalBlocker> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
참고: 이 클래스의 모든 함수는 재진입합니다.
공용 함수
QSignalBlocker(QObject *object) | |
QSignalBlocker(QObject &object) | |
QSignalBlocker(QSignalBlocker &&other) | |
~QSignalBlocker() | |
(since 6.7) void | dismiss() |
void | reblock() |
void | unblock() |
QSignalBlocker & | operator=(QSignalBlocker &&other) |
상세 설명
QSignalBlocker는 블록 시그널() 호출 쌍을 사용하는 모든 곳에서 사용할 수 있습니다. 생성자에서 신호를 차단하고 소멸자에서 생성자가 실행되기 전의 상태로 상태를 재설정합니다.
{ const QSignalBlocker blocker(someQObject); // no signals here }
는 따라서
const bool wasBlocked = someQObject->blockSignals(true); // no signals here someQObject->blockSignals(wasBlocked);
와 동일하지만, 예외가 발생했을 때 QSignalBlocker를 사용하는 코드가 안전하다는 점이 다릅니다.
QMutexLocker 및 QEventLoopLocker 을참조하십시오 .
멤버 함수 문서
[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() 이후의 신호를 다시 차단합니다.
재차 차단() 및 unblock() 호출 횟수는 계산되지 않으므로 모든 재차 차단() 호출은 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 는 차단이 해제되지 않는 경우를 제외하고는 차단이 해제됩니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.