一、创建一个长时间运行的QT线程
#ifndef MYPRINTJOB_H #define MYPRINTJOB_H #include <QObject> #include <QThread> #include "MyOperation/myslicefile.h" class MyPrintJob : public QObject { Q_OBJECT public: explicit MyPrintJob(QObject *parent = nullptr); ~MyPrintJob(); public slots: void StartPrintWorkSlot(); private: QThread *m_printJobThread; }; #endif // MYPRINTJOB_H
然后cpp文件
#include "myprintjob.h" MyPrintJob::MyPrintJob(QObject *parent) : QObject(parent) { m_printJobThread = new QThread(); connect(m_printJobThread, &QThread::started, this, &MyPrintJob::StartPrintWorkSlot); this->moveToThread(m_printJobThread); m_printJobThread->start(); } MyPrintJob::~MyPrintJob() { if(m_printJobThread->isRunning()) { m_printJobThread->quit(); m_printJobThread->wait(); } } void MyPrintJob::StartPrintWorkSlot() { }