如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 316 编程语言
Qt5的多线程一般有两种形式,通过继承QThread或继承QObject类来完成多线程。
这里我们先采用简单的继承QThread的方式来运行多线程程序。
本次我们设计一个计时器程序,每100ms数字加1。UI在主线程运行,逻辑通过继承QThread的TimeWorkd的run()函数运行。通过信号槽的方式,实现线程通信。
源代码在最后面,照着输入地址进入GitHub就可以了。
首先我们新建一个工程项目,这里不再赘述,不会的请关注我并查看我的其它经验。
创建项目的时候记得把界面勾选上,因为我们是通过手动绘制窗口界面。
主窗口名为MainWidget
点击项目名鼠标右键,添加新文件的选项
这里选择创建一个C 类,点击下一步
类名为TimeWork
用于实现我们的定时器的逻辑功能
再点击完成就可以了,其他的不用管默认就可以了
在TimeWork的头文件里面添加如下部分
记得加上Q_OBJECT这个宏,不然无法使用信号槽
TimeWork的cpp文件,函数的实现如下图
注意,QThread只有run()函数是运行在子线程中的,其余函数均在主线程中运行。
对于需要在多个线程中更改的变量我们需要上锁用于保护变量更改时线程调用的唯一性
MainWidget主界面的实现方式如下图
程序可以实现计时器的开始、暂停和停止功能
具体运行效果如下图
所有程序源代码如下
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: 编程语言
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 316 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 536 编程语言