1

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. 別の問題 - スレッドとアプリケーションの間でデータを転送するにはどうすればよいですか? QLabel (例: タイマー) に QThread を使用したいのですが、良いチュートリアルが見つかりません。問題なくコンパイルできます. 誰でも私を助けることができますか?
そして, 私が尋ねることができれば, フォームの onCreate() のようなスレッドを開始するにはどうすればよいですか? アプリケーションの実行時間をカウントするための簡単なタイマーを作成したい.
よろしく

4

1 に答える 1