QEventLoopLocker 类

QEventLoopLocker 类提供了一种在不再需要时退出事件循环的机制。 更多信息...

头文件 #include <QEventLoopLocker>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

QEventLoopLocker()
QEventLoopLocker(QEventLoop *loop)
QEventLoopLocker(QThread *thread)
(自 6.7) QEventLoopLocker(QEventLoopLocker &&other)
~QEventLoopLocker()
(自 6.7) voidswap(QEventLoopLocker &other)
(自 6.7) QEventLoopLocker &operator=(QEventLoopLocker &&other)
(自 6.7) voidswap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)

详细描述

QEventLoopLocker 对特定对象进行操作 - 要么是 QCoreApplication 实例,要么是 QEventLoop 实例,要么是 QThread 实例。

这使得有可能在使用事件循环运行一系列作业后退出该事件循环。这是通过在每个作业实例中保留一个 QEventLoopLocker 来实现的。

操作 QCoreApplication 的变体使得在最后一个 GUI 窗口关闭后异步完成运行中的作业成为可能。例如,运行将数据上传到网络的工作项可能很有用。

另请参阅QEventLoopQCoreApplication

成员函数文档

[noexcept] QEventLoopLocker::QEventLoopLocker()

创建一个在 QCoreApplication 上操作的事件锁定器。

如果 QCoreApplication::isQuitLockEnabled() 为 true,则应用程序将尝试退出,只要没有更多在它上操作 QEventLoopLockers 为止。

请注意,尝试退出可能不会导致应用程序退出,例如,如果存在打开的窗口,或者忽略了 QEvent::Quit 事件。

另请参阅QCoreApplication::quit() 和 QCoreApplication::isQuitLockEnabled

[显式 noexcept] QEventLoopLocker::QEventLoopLocker(QEventLoop *loop)

在一个loop上创建一个事件锁。

当没有更多的QEventLoopLocker在此QEventLoop上运行时,此特定QEventLoop将退出。

另请参阅QEventLoop::quit()。

[显式 noexcept] QEventLoopLocker::QEventLoopLocker(QThread *thread)

在一个thread上创建一个事件锁。

当没有更多的QEventLoopLocker在此QThread上运行时,此特定QThread将退出。

另请参阅QThread::quit()。

[noexcept, 自 6.7 起] QEventLoopLocker::QEventLoopLocker(QEventLoopLocker &&other)

other移动构造事件循环锁。 other将具有空操作析构函数,而防止QEventLoop/QThread/QCoreApplication退出的责任将转交给新对象。

此功能从Qt 6.7开始引入。

[noexcept] QEventLoopLocker::~QEventLoopLocker()

销毁此事件循环锁对象

[noexcept, 自 6.7 起] void QEventLoopLocker::swap(QEventLoopLocker &other)

交换此QEventLoopLockerother的对象和状态。此操作非常快速且从不失败。

此功能从Qt 6.7开始引入。

[noexcept, 自 6.7 起] QEventLoopLocker &QEventLoopLocker::operator=(QEventLoopLocker &&other)

other移动分配此事件循环锁。 other将具有空操作析构函数,而防止QEventLoop/QThread/QCoreApplication退出的责任将转交给此对象。

此功能从Qt 6.7开始引入。

相关非成员函数

[noexcept, 自 6.7 起] void swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)

交换lhsrhs的对象和状态。此操作非常快速且从不失败。

此功能从Qt 6.7开始引入。

© 2024 Qt公司有限。此处包含的文档贡献是由其各自的拥有者拥有版权的。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可版本1.3的条款许可的。Qt及其相应标志是芬兰以及全球其他国家的Qt公司商标。所有其他商标均为其各自所有者的财产。