qt的线程还是非常优雅的,当然我们可以使用系统自带的函数接口创建线程,但是跨平台移植似乎就是问题。
qt的线程是可以支持跨平台的移植的。
qt的线程非常简单,就是继承QThread然后重写run方法,run函数就是我们的线程主体,对于重写其实本质就是一个回调接口了。
好了注意重点:在主函数实例化然后调用start方法就开始运行线程了,千万不要调用函数调用的急眼了,把run函数也调用了。
头文件
#ifndef THREAD_H #define THREAD_H #include<QThread> #include<QDebug.h> class mythread:public QThread { public: protected: void run() { while(1) { qDebug("test"); } } }; #endif // THREAD_H
main函数
#include "mainwindow.h" #include <QApplication> #include <QFile> #include "thread.h" QString getQssContent() { QFile styleSheet(":/style.ss"); if (!styleSheet.open(QIODevice::ReadOnly)) { qDebug("Can't open the style sheet file."); return ""; } return styleSheet.readAll(); } int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); mythread th_id; // th_id.run();**********注意哦,不要调用run,不知道当时是为什么脑残,调用了run // 调试的我怀疑人生. th_id.start();//运行线程 a.setStyleSheet(getQssContent()); return a.exec(); }
界面和耗时操作独立起来!