首页 > 软件开发 > 编程语言 >

Qt5 多线程测试 附所有源代码

来源:互联网 2023-03-17 00:23:36 459

Qt5的多线程一般有两种形式,通过继承QThread或继承QObject类来完成多线程。Pbx办公区 - 实用经验教程分享!

这里我们先采用简单的继承QThread的方式来运行多线程程序。Pbx办公区 - 实用经验教程分享!

本次我们设计一个计时器程序,每100ms数字加1。UI在主线程运行,逻辑通过继承QThread的TimeWorkd的run()函数运行。通过信号槽的方式,实现线程通信。Pbx办公区 - 实用经验教程分享!

源代码在最后面,照着输入地址进入GitHub就可以了。Pbx办公区 - 实用经验教程分享!

Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

工具/原料

  • Qt5

方法/步骤

  • 1

    首先我们新建一个工程项目,这里不再赘述,不会的请关注我并查看我的其它经验。Pbx办公区 - 实用经验教程分享!

    创建项目的时候记得把界面勾选上,因为我们是通过手动绘制窗口界面。Pbx办公区 - 实用经验教程分享!

    主窗口名为MainWidgetPbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 2

    点击项目名鼠标右键,添加新文件的选项Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 3

    这里选择创建一个C 类,点击下一步Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 4

    类名为TimeWorkPbx办公区 - 实用经验教程分享!

    用于实现我们的定时器的逻辑功能Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 5

    再点击完成就可以了,其他的不用管默认就可以了Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 6

    在TimeWork的头文件里面添加如下部分Pbx办公区 - 实用经验教程分享!

    记得加上Q_OBJECT这个宏,不然无法使用信号槽Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 7

    TimeWork的cpp文件,函数的实现如下图Pbx办公区 - 实用经验教程分享!

    注意,QThread只有run()函数是运行在子线程中的,其余函数均在主线程中运行。Pbx办公区 - 实用经验教程分享!

    对于需要在多个线程中更改的变量我们需要上锁用于保护变量更改时线程调用的唯一性Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 8

    MainWidget主界面的实现方式如下图Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 9

    程序可以实现计时器的开始、暂停和停止功能Pbx办公区 - 实用经验教程分享!

    具体运行效果如下图Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 10

    所有程序源代码如下Pbx办公区 - 实用经验教程分享!

    Qt5 多线程测试 附所有源代码Pbx办公区 - 实用经验教程分享!

  • 10相关内容非法爬取自百度经验
  • 注意事项

    • 有任何疑问可以留言
    • 记得点赞和投票哦

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Pbx办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码