1. 说明
在QT / QML中创建线程主要有三种方式。第一种:在定义类时继承 QThread 这个类,然后重写父类的虚函数 run(),将子线程需要执行的业务代码放到 run() 函数当中即可。**注意:**这种方式官方已经摒弃了。第二种:使用moveToThread()函数将需要在子线程中执行的函数类移动到子线程中,这也是官方推荐的方式,比较灵活。第三种:使用WorkerScript创建线程,这种方式仅适用于QML编写前端的开发方式。本篇博客主要记录第二第三种线程创建方式。
2. 相关步骤
2.1 第二种:使用moveToThread()函数
首先,在QtCreator中新建一个QtQuick项目,需要实现的大致功能就是,在QML界面上点击按钮之后,会触发CPP后端的一个for循环函数(模拟耗时操作),同时将循环的次数显示在QML界面上。如下图所示:
然后,创建一个工作类,命名为myWork,在此类中写耗时的模拟代码,相关代码如下:
myWork.h:
#