QT应用编程: 使用QEventLoop实现事件循环

简介: QT应用编程: 使用QEventLoop实现事件循环

一、环境介绍

操作系统: win10 64位


QT版本:  QT5.12.6


二、QEventLoop类

QEventLoop类提供了一种进入和离开事件循环的方法。

在任何时候,你都可以创建一个QEventLoop对象并对其调用exec(),以启动本地事件循环,在事件循环中,调用exit()将强制exec()返回。另请参见QAbstractEventDispatcher。

image.png

QEventLoop 常规运用环境 :   在主界面里执行某个代码之前,需要等待某个条件成立,但是这个条件是其他线程异步通知的;这时,主线程需要等待这个条件成立才能继续执行;这时如果不想卡主界面,就可以使用QEventLoop完成。

示例1:

 QEventLoop loop;
void widget::on_pushButton1_clicked()
{
........ 需要等待某个条件成立
    loop.exec();
.........
继续执行代码.
}
//槽函数: 等待的条件满足时进入
void widget::on_timeclicked()
{
..........
loop.exit();  //退出事件循环
}

示例2:

void widget::on_pushButton_clicked()
{
........ 需要等待100毫秒的时间.等待某个条件成立
    //事件循环: 在指定时间后执行某件事. 不卡UI界面
    QEventLoop loop;
    QTimer::singleShot(100, &loop, SLOT(quit()));
    loop.exec();
.........
继续执行代码.
}


目录
相关文章
|
4月前
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
87 0
|
7月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
687 4
|
7月前
|
开发框架 Linux API
Qt:构建高效且用户友好的跨平台应用
Qt:构建高效且用户友好的跨平台应用
|
7月前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
7月前
|
安全 数据处理 C++
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
1563 3
|
4月前
|
API 开发工具 C语言
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
246 0
关于Qt的pri模块化编程详解
关于Qt的pri模块化编程详解
|
4月前
|
JavaScript Java Go
【Qt】Qt编程注意事项
【Qt】Qt编程注意事项
|
7月前
|
Windows 安全 C++
Qt字符串类应用与常用基本数据类型
Qt字符串类应用与常用基本数据类型
|
7月前
|
测试技术 API UED
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
204 1