Qt学习之多线程

前言

          最近本人想要发布一些大家在Qt开发中可以直接拿来用的模板,这个模板呢,我会以教学的方式去让大家去理解,然后可以为己所用,但是本章不适用用纯新手,适用于有些许Qt基础的同志。

        那么今天的话我们来学习多线程,那么多线程有什么用?怎么去创建?我啥时候应该用?这些才是我们想要去了解的,学习的。好的不多说,开始吧!

创建一个Qt工程,并在ui界面添加一个按钮(开启线程)和文本框(接受线程信息)。

 2.再创建一个C++文件(不用ui),用做线程通信,跨线程,更好的诠释了多线程,

在mythead文件添加一个槽函数(用来做线程通信)和信号(发送信号给主线程)

对应的cpp文件,实现方法 .

这个函数是循环10次,每一次都携带着对应的次数发送信号给主线程,让主线程在文本显示(待会做),然后线程处理完就退出这个线程,养成良好习惯。

接下来是主线程实现。首先我们看头文件,一个按钮槽函数(启动线程)和接受数据的槽函数(接受my线程的信号),以及定义了一个线程。

 然后看我们的cpp文件。

首先线程实例化,然后子线程实例化

mythread的实例移动到新创建的线程中。这确保了mythread中的任何操作(特别是耗时操作)都在这个新的线程中执行,从而不会阻塞主线程(GUI线程)。

  • 第一个连接确保当线程结束时,mythread对象会被自动删除。
  • 第二个连接将线程的started()信号连接到mythreadrun()槽,但这里有个问题:通常QThreadrun()函数不需要被手动调用,因为它在start()时被自动调用。这里应该是连接到一个自定义的槽或者确保mythread有一个自定义的run()函数并在其内部处理逻辑。
  • 第三个连接用于将mythread发出的send_Data信号连接到MainWindowrece_Data槽,以便在线程中生成的数据可以被UI线程接收并显示。

然后下面在析构函数清理资源,安全的清理掉线程,养成良好习惯。

按钮槽函数,点击后就要开始线程(触发run函数),然后不让按钮使能。

接受槽函数,接受run的信号显示到文本框。

最后是结果显示:

 

创作不易,感谢大家的点赞!我会分享更多的试用技巧的,有错误也请大家多多指正! 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值