QT学习历程之QThread

       Qt开启多线程,主要用到类QThread。有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run()。当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程。第二种方法是继承一个QObject类,然后利用moveToThread()函数开启一个线程槽函数,将要花费大量时间计算的代码放入该线程槽函数中。这里我们主要实践第一种方法,来另起线程实现一个导入进度条。

效果图如下:

QT学习历程之QThread_第1张图片

      首先我们写一个类来继承QThread,然后重写run函数,这里我们用MyThread来对他描述

QT学习历程之QThread_第2张图片

QT学习历程之QThread_第3张图片

然后这个时候我们就要实现一个ui布局,也不多说了,都是简单的控件,显示如下:

然后我们在widget实现新开线程的代码

QT学习历程之QThread_第4张图片

QT学习历程之QThread_第5张图片

main.cpp保持不变即可,以上就是实现新开进度条的所以代码。

那我们怎么来检验呢,可以在QT打印的信息中的得出

显然UI界面、MyThread构造函数处于同一线程(主线程),而run()函数处于另一线程(次线程),还有就是要注意写MyThread的构造函数的时候不是QWidget而是QObject。

你可能感兴趣的:(QT学习历程之QThread)