27.12.2014
I started a thread here:
http://www.qtforum.de/forum/viewtopic.php?f=1&t=16671
QThread
Wenn man eine GUI hat, in der dann rechenintensieve Routinen laufen, dann sollten diese unbedingt in einem eigenen Thread laufen!
Grundprinzip:
QThread workerThread;
angelegt.
class Worker : public QObject { ... }
worker = new Worker(); worker->moveToThread(&workerThread);
connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater); connect(this, MainWindow::operate, worker, &Worker::process); connect(worker, &Worker::finished, this, &MainWindow::finished); connect(worker, &Worker::currentFileNameChanged, this, &MainWindow::updateFileName); workerThread.start();
Somit läuft das Objekt nun in einem eigenen Thread, und wir mit einem
emit operate();
angestartet. Von dem Thread aus kann man dann ganz normal seine Signals an mainWindow schicken, und dort entsprechend die GUI updaten, z.B. einen QProgressbar.