Qt多线程实例与connect第五个参数[通俗易懂]

Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimeret;…

大家好,又见面了,我是你们的朋友全栈君。

Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。

解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。

QElapsedTimer et;  
et.start();  
while(et.elapsed()<300)   
 QCoreApplication::processEvents();  

解决方法二:采用多线程,将需要处理的后台数据放入子线程,为了能够跨线程调用,一种方法是使用类似线程锁对线程进行保护,另外一种方法使用Qt的信号槽机制。Qt的信号槽机制采用connect函数进行连接,connect函数其实是有第五个参数的,但这个参数往往在多线程调用中才会用到:

connect(Sender,SIGNAL(signal),Receiver,SLOT(slot),Qt::DirectConnection);  

第五个参数代表槽函数在哪个线程中执行 :
1)自动连接(AutoConnection),默认的连接方式,如果信号与槽,也就是发送者与接受者在同一线程,等同于直接连接;如果发送者与接受者处在不同线程,等同于队列连接。
2)直接连接(DirectConnection),当信号发射时,槽函

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126660.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Stimulsoft.Report的代码实现功能自学整理(一)「建议收藏」

    Stimulsoft.Report的代码实现功能自学整理(一)「建议收藏」一、编译环境VisualStudio2017,Win764位,Stimulsoft版本2016.1.0.0。二、报表环境的汉化(代码实现)安装完Stimulsoft后,在路径下C:\ProgramFiles(x86)\StimulsoftReports.Net2016.1Trial\Localization中会发现很多xml文件,这些文…

    2022年7月26日
    21
  • Laravel基本使用、生成Cookie、返回视图、JSON/JSONP、文件下载及重定向

    Laravel基本使用、生成Cookie、返回视图、JSON/JSONP、文件下载及重定向

    2021年10月22日
    63
  • 零基础学Java(2)数据类型与变量

    零基础学Java(2)数据类型与变量前言Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型,其中有4种整型、2种浮点型、1种字符串类型char(用于表示Unicode编码的代码单元)和1种

    2022年7月31日
    9
  • matlab灰度gui,matlabgui灰度变化

    matlab灰度gui,matlabgui灰度变化课程设计报告册?课程名称:课题名称:专业班级:姓名:MATLAB课程设计灰度变换增强BobWang学号:信息楼22015164课程设计主要场所:时间:……《数字视音频技术》课程设计报告题目:基于MATLABGUI的数字图像处…学号:20994055003数字图像处理论文二〇一二年十月基于灰度变换的图像增强及Matlab实现摘…

    2022年5月23日
    35
  • MATLAB下载+安装教程[通俗易懂]

    MATLAB下载+安装教程[通俗易懂]MATLAB下载+安装教程说明:本文章提供的是MATLAB2018b的下载及安装方式。下载2个DVD镜像然后对其进行安装操作,本人亲测有效。下载提供的是百度网盘的下载,暂时没有找到其他途径的下载方式,后续若有其他下载方式在更新提供给各位网友。链接:https://pan.baidu.com/s/1Ph5KZdABQmM_sjyOVC7WMg提取码:rd9a下载资源一共有3个:DVD1+DVD2+MATLAB_R2018b_Win64_Crack安装安装全过程将电脑上的杀毒软件关闭,

    2022年6月2日
    53
  • RPN网络解读

    RPN网络解读RPN网络源码解读在高层的featuremap初次计算anchorbox点数值604099代表一个特征维度生成9个anchorbox,但特征层w,h为啥是60,40不应该是相等的?毕竟backbone网络一系列操作(下采样),w,h同时缩小的。下不管了,不是今天主要问题。step1:也就是说原始生成大约20000boxs,再进行2k排序(每个boxs得分为目标或背景的概率,不管是背景还是目标都要得分高的)设定阈值为12000,也就是说最多保留12000,也有的源码设定2000。step2

    2022年6月23日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号