我尝试使用 QThread,但我做不到 :( 我的示例线程:
#include "worker.h"
#include "mainwindow.h"
#include <QDebug>
Worker::Worker() {}
Worker::~Worker() {
qDebug() << "Worker ends.";
}
void Worker::run() {
qDebug() << "Worker start.";
sleep(2);
emit finished();
}
和代码 on_btnStart_clicked():
Worker *worker = new Worker;
QThread *workerThread = new QThread(this);
connect(workerThread, SIGNAL(started()), worker, SLOT(start()));
connect(workerThread, SIGNAL(finished()), worker, SLOT(quit()));
worker->moveToThread(workerThread);
workerThread->start();
工人开始,但永远不会结束(如果我关闭应用程序,我会得到QThread: Destroyed while thread is still running
。另一个问题 - 我如何在线程和我的应用程序之间传输数据?我想将 QThread 用于 QLabel(例如:计时器)。我找不到任何好的教程我可以毫无问题地编译。任何人都可以帮助我?
而且,如果我可以问,我如何为表单启动像 onCreate() 这样的线程?我想创建简单的计时器来计算应用程序运行的时间。
问候