QT实现多线程

方法一
步骤一:继承QThread
在这里插入图片描述
步骤二:重写虚函数run
在这里插入图片描述
步骤三:实例化线程类
在这里插入图片描述
步骤四:执行start函数,启动子线程(调用run函数)
在这里插入图片描述

方法二
步骤一:封装一个需要移动至子线程执行的类
在这里插入图片描述
步骤二:实例化工作线程对象
在这里插入图片描述
步骤三:实例化QThread对象
在这里插入图片描述
步骤四:工作线程对象移至子线程
在这里插入图片描述
步骤五:将需要执行的函数,通过信号和槽的方式连接,在调用的地方发送信号(直接调用
实现不了多线程)
在这里插入图片描述
步骤六:开启子线程
在这里插入图片描述
注意:在析构函数中添加线程停止的操作(避免报错)
在这里插入图片描述
信号与槽函数连接时,第五个参数建议默认
Qt::DirectConnection:直接连接,都在信号发送者的线程里进行操作
Qt::QueuedConnection:发送者与接受者分开(与0差不多)
注意:在子线程中不能出现UI控件的操作
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值