QEventLoopLocker Class
QEventLoopLocker 类提供了一种在不再需要时退出事件循环的方法。更多
Header: | #include <QEventLoopLocker> |
CMake.QEventLoopLocker | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
公共函数
QEventLoopLocker() | |
QEventLoopLocker(QEventLoop *loop) | |
QEventLoopLocker(QThread *thread) | |
(since 6.7) | QEventLoopLocker(QEventLoopLocker &&other) |
~QEventLoopLocker() | |
(since 6.7) void | swap(QEventLoopLocker &other) |
(since 6.7) QEventLoopLocker & | operator=(QEventLoopLocker &&other) |
相关非成员
(since 6.7) void | swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs) |
详细说明
QEventLoopLocker 可对特定对象进行操作 -QCoreApplication 实例、QEventLoop 实例或QThread 实例。
例如,这样就可以通过事件循环运行一批作业,并在最后一个作业完成后退出事件循环。这可以通过在每个作业实例中保留一个 QEventLoopLocker 来实现。
在QCoreApplication 上运行的变体可以在最后一个 gui 窗口关闭后完成异步运行的作业。例如,这对运行将数据上传到网络的作业非常有用。
另请参阅 QEventLoop 和QCoreApplication 。
成员函数文档
[noexcept]
QEventLoopLocker::QEventLoopLocker()
创建一个在QCoreApplication 上运行的事件锁定器。
只要QCoreApplication::isQuitLockEnabled() 是true
,当没有更多的 QEventLoopLocker 运行时,应用程序就会尝试退出。
请注意,如果存在打开的窗口或QEvent::Quit 事件被忽略等情况,尝试退出不一定会导致应用程序退出。
另请参阅 QCoreApplication::quit() 和QCoreApplication::isQuitLockEnabled()。
[explicit noexcept]
QEventLoopLocker::QEventLoopLocker(QEventLoop *loop)
创建一个在loop 上运行的事件锁定器。
当没有更多的 QEventLoopLocker 在其上运行时,这个特定的QEventLoop 将退出。
另请参阅 QEventLoop::quit() 。
[explicit noexcept]
QEventLoopLocker::QEventLoopLocker(QThread *thread)
创建一个在thread 上运行的事件锁定器。
当没有更多的 QEventLoopLocker 在其上运行时,这个特定的QThread 将退出。
另请参阅 QThread::quit() 。
[noexcept, since 6.7]
QEventLoopLocker::QEventLoopLocker(QEventLoopLocker &&other)
Move-construct 从other 开始构建一个事件循环锁。other 将有一个无操作的析构函数,而防止QEventLoop/QThread/QCoreApplication 退出的责任将转移到新对象。
此函数在 Qt 6.7 中引入。
[noexcept]
QEventLoopLocker::~QEventLoopLocker()
销毁此事件循环锁定器对象
[noexcept, since 6.7]
void QEventLoopLocker::swap(QEventLoopLocker &other)
将QEventLoopLocker 的对象和状态与other 互换。该操作速度非常快,而且从不出错。
该函数在 Qt 6.7 中引入。
[noexcept, since 6.7]
QEventLoopLocker &QEventLoopLocker::operator=(QEventLoopLocker &&other)
移动将此事件循环锁定器从other 分配。other 将有一个无操作的析构函数,而防止QEventLoop/QThread/QCoreApplication 退出的责任将转移到此对象。
此函数在 Qt 6.7 中引入。
相关非成员
[noexcept, since 6.7]
void swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)
将lhs 的对象和状态与rhs 互换。该操作速度非常快,而且不会失败。
该函数在 Qt 6.7 中引入。
© 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.