QEventLoopLocker 类
QEventLoopLocker 类提供了一种在不再需要时退出事件循环的机制。 更多信息...
头文件 | #include <QEventLoopLocker> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
公共函数
QEventLoopLocker() | |
QEventLoopLocker(QEventLoop *loop) | |
QEventLoopLocker(QThread *thread) | |
(自 6.7) | QEventLoopLocker(QEventLoopLocker &&other) |
~QEventLoopLocker() | |
(自 6.7) void | swap(QEventLoopLocker &other) |
(自 6.7) QEventLoopLocker & | operator=(QEventLoopLocker &&other) |
相关非成员
(自 6.7) void | swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs) |
详细描述
QEventLoopLocker 对特定对象进行操作 - 要么是 QCoreApplication 实例,要么是 QEventLoop 实例,要么是 QThread 实例。
这使得有可能在使用事件循环运行一系列作业后退出该事件循环。这是通过在每个作业实例中保留一个 QEventLoopLocker 来实现的。
操作 QCoreApplication 的变体使得在最后一个 GUI 窗口关闭后异步完成运行中的作业成为可能。例如,运行将数据上传到网络的工作项可能很有用。
另请参阅QEventLoop 和 QCoreApplication。
成员函数文档
[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)
交换此QEventLoopLocker和other的对象和状态。此操作非常快速且从不失败。
此功能从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)
交换lhs和rhs的对象和状态。此操作非常快速且从不失败。
此功能从Qt 6.7开始引入。
© 2024 Qt公司有限。此处包含的文档贡献是由其各自的拥有者拥有版权的。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可版本1.3的条款许可的。Qt及其相应标志是芬兰以及全球其他国家的Qt公司商标。所有其他商标均为其各自所有者的财产。