Wie kommuniziere ich einen Fortschritt von einer QTConcurrent :: Run -Funktion (oder ähnlichem) zu einem QfutureWatcher?
Posted: 09 Mar 2025, 12:37
Wenn ich eine Funktion für die asynchrone Ausführung mit Qtconcurrent :: Run starte und die zurückgegebene Zukunft mit einem QfutureWatcher überwacht, wenn irgendetwas kann, wenn ich in diesem asynchron -Ausführen von Asynchron ausführen kann, um einen Fortschritt zu kommunizieren. /> dh was ich tun möchte ist etwas < /em> wie: < /p>
Jedoch , großes Problem , die Qtconcurrent :: Run -Dokumentation stellt eindeutig fest, dass
Beachten Sie, dass die von Qtconcurrent zurückgegebene QFuture nicht mit qtconcurrent :: run (). Die zurückgegebene QFuture kann
nur zum Abfragen für den Auslauf /Fertigstatus und den Rückgabe -Wert
der Funktion verwendet werden. Muss ich qtconcurrent :: run aufgeben? Qfuture ? Beide? (Und kehren Sie zu Qthread und in der Warteschlange?)
Code: Select all
void fn() {
???->setProgressText("Starting);
...
???->setProgressText("halfway");
...
???->setProgressText("done!");
}
QFutureWatcher watcher;
connect(&watcher, SIGNAL(progressTextChanged(const QString&)), &someGuiThing, SLOT(updateProgress(const QString&)));
connect(&watcher, SIGNAL(finished(), &someGuiThing, SLOT(doStuff()));
QFuture future=QConcurrent::run(fn);
watcher.setFuture(future);
Beachten Sie, dass die von Qtconcurrent zurückgegebene QFuture nicht mit qtconcurrent :: run (). Die zurückgegebene QFuture kann
nur zum Abfragen für den Auslauf /Fertigstatus und den Rückgabe -Wert
der Funktion verwendet werden. Muss ich qtconcurrent :: run aufgeben? Qfuture ? Beide? (Und kehren Sie zu Qthread und in der Warteschlange?)