qt创建线程总结

一、创建一个长时间运行的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()
{

}

猜你喜欢

转载自www.cnblogs.com/ch122633/p/12100283.html
今日推荐