16,229
社区成员
发帖
与我相关
我的任务
分享
#ifndef MYQTHREAD_H
#define MYQTHREAD_H
#include <QThread>
class MyQThread : public QThread
{
public:
MyQThread();
virtual void run();
};
#endif // MYQTHREAD_H
#include "myqthread.h"
#include <QDebug>
MyQThread::MyQThread()
{
}
void MyQThread::run()
{
qDebug()<<"MyQThread Running";
//delete(this);
deleteLater();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "myqthread.h"
void cplusThread()
{
qDebug()<<"cplusThread Running";
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
// MyQThread *pMyQThread = new MyQThread();
// pMyQThread->start();
std::thread t1(cplusThread);
t1.detach();
}
class WorkerThread : public QThread
{
Q_OBJECT
void run() override {
QString result;
/* ... here is the expensive or blocking operation ... */
emit resultReady(result);
}
signals:
void resultReady(const QString &s);
};
void MyObject::startWorkInAThread()
{
WorkerThread *workerThread = new WorkerThread(this);
connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);
connect(workerThread, &WorkerThread::finished, workerThread, &QObject::deleteLater);
workerThread->start();
}
https://doc.qt.io/qt-5/qthread.html