QT的多线程详解(包含案例)

3 篇文章 0 订阅
3 篇文章 0 订阅

#QT实现多线程
相对于现在Qt的版本,多线程的写法已经有很多种了,我下面例子采用的重写Run函数的方法实现多线程的
这个方法也是我最近做项目 总结出来的一些方法,算是分享给大家。
步骤如下:
(1).添加新的类,命名随意。右击项目文件,选择addnew,图如下:

在这里插入图片描述
在这里插入图片描述

(2)选择类 C++ class。
在这里插入图片描述
(3) 命名类的名称 ,选择包含QObject。在这里插入图片描述
(4).打开创建的.h文件。毕竟要使用线程,所以要先包含QThread头文件,再将类的继承由QObject改为QThread,然后声明run()函数。若你想主线程给子线程传递参数,则可以采用图中的方法。图中的是构造函数的声明,实现是在CPP文件中的。
①: 包含线程的头文件。
②: 重写继承关系,将public QObject改为 public QThread。
③: 在public下 写入run函数。
若想要在子线程中接收主线程的数据,则需要写入参数传递函数,如图中的红色椭圆框。对于要接收数据的变量则需要在private中写入新的变量用于存储。若想要子线程给主线程传递处理好的数据,则需要emit 信号 ,在头文件中添加signals,如:signals:
getData(QString s)
emit getData(“处理好的数据”)
在这里插入图片描述
(5).打开CPP文件,包含主线程的cpp和需要采用的模块的头文件,在这个cpp中只有run函数是运行在新的线程中(PS:之前不知道这个特性,还在savethread.cpp中写入多个函数,还用定时器信号与槽 触发,结果发现,其他的不怎么运行),重要的事情说三遍!!! 若是想把耗时操作写入多线程,一定要注意代码的逻辑。
在这里插入图片描述
(6)到这里线程的内容就写完了,接下来就需要在主线程中启动,调用它。
打开主线程的CPP,在需要采用线程的地方调用,然后启动线程,最后关闭线程。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

房东不养猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值