QT中使用moveToThread让任务在子线程中进行

原理:

1、使用QThread生成一个线程对象

2、任务对象moveToThread

因为moveToThread是QObject类的函数,所以定义任务对象的类的时候,要让该类继承自QObject函数,继承其moveToThread函数。

3、QThread 生成的线程对象调用run函数,开启线程

4、使用信号和槽,连接任务对象的任务处理函数。注意,第二个函数的主体是任务处理对象

5、如何释放该线程资源,还不清楚。研究中

cpp 复制代码
myWav = new UseWav();                       //处理任务的对象
    QThread *thread = new QThread();            //创建一个线程对象

    myWav->moveToThread(thread);                //将人物对象添加到线程对象中

    thread->start();                            //线程启动

    qDebug() << "The adress of the server" << QThread::currentThread();

    connect(btn,&QPushButton::clicked,myWav,[=](){  //注意这里的信号接受者
        myWav->wavWorking("aplay 0.wav");       //任务处理函数
    });
相关推荐
知识分享小能手8 分钟前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn089529 分钟前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长1 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
江湖人称菠萝包2 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy2 小时前
【QT android】环境安装及第一个QT项目
qt·andriod开发
weixin_307779133 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
2601_966949653 小时前
为什么量化回测中 for 循环比 DataFrame 慢三个数量级?从向量化原理讲起
开发语言·python·pandas·股票数据·quantdash
边境悍匪5 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
我的xiaodoujiao5 小时前
Django 基础知识详细图文教程 9-Django 模板引擎 2
开发语言·数据库·后端·django
菜鸟~noob2335 小时前
【太空电子战】从CCS到Meadowlands:反通信系统的二十年演进史【含matlab代码】
开发语言·matlab