QtTaskTree::Group Class
class QtTaskTree::GroupEine Gruppe stellt das Grundelement für die Erstellung deklarativer Anleitungen dar, die beschreiben, wie ein verschachtelter Baum asynchroner Aufgaben ausgeführt und verwaltet wird. Mehr...
| Überschrift: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree) target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Seit: | Qt 6.11 |
| Erbt von: | QtTaskTree::ExecutableItem |
| Status: | Technologievorschau |
Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
| Group(const QtTaskTree::GroupItems &children) | |
| Group(std::initializer_list<QtTaskTree::GroupItem> children) |
Ausführliche Beschreibung
„Group“ ist ein Container für andere Gruppenelemente. Er fasst untergeordnete Aufgaben zu einer Einheit zusammen, die von der übergeordneten Gruppe als eine einzige, asynchrone Aufgabe wahrgenommen wird. Da „Group“ vom Typ „ GroupItem “ ist, kann sie auch eine untergeordnete Instanz von „Group“ sein.
Fügen Sie untergeordnete Aufgaben mithilfe von Aliasnamen für benutzerdefinierte Aufgaben in die Gruppe ein, z. B. „ QThreadFunctionTask<ResultType>“ oder „ QNetworkReplyWrapperTask “:
const Group group {
QNetworkReplyWrapperTask(...),
QThreadFunctionTask<int>(...)
};Sie können das Verhalten der Gruppe anpassen, indem Sie die Elemente „ ExecutionMode “ oder „ WorkflowPolicy “ einfügen:
const Group group {
parallel,
continueOnError,
QNetworkReplyWrapperTask(...),
QNetworkReplyWrapperTask(...)
};Die Gruppe kann verschachtelte Gruppen enthalten:
const Group group {
finishAllAndSuccess,
QNetworkReplyWrapperTask(...),
Group {
QNetworkReplyWrapperTask(...),
Group {
parallel,
QNetworkReplyWrapperTask(...),
QNetworkReplyWrapperTask(...),
}
QThreadFunctionTask<QString>(...)
}
};Die Gruppe kann dynamisch eine benutzerdefinierte Speicherstruktur instanziieren, die für den Datenaustausch zwischen Tasks verwendet werden kann:
struct MyCustomStruct { QByteArray data; };
Storage<MyCustomStruct> storage;
const auto onFirstSetup = [](QNetworkReplyWrapper &task) { ... };
const auto onFirstDone = [storage](const QNetworkReplyWrapper &task) {
// storage-> gives a pointer to MyCustomStruct instance,
// created dynamically by the running task tree.
storage->data = task.reply()->readAll();
};
const auto onSecondSetup = [storage](QThreadFunction<QImage> &task) {
// storage-> gives a pointer to MyCustomStruct. Since the group is sequential,
// the stored MyCustomStruct was already updated inside the onFirstDone handler.
const QByteArray storedData = storage->data;
};
const Group group {
// When the group is entered by a running task tree, it creates MyCustomStruct
// instance dynamically. It is later accessible from all handlers via
// the *storage or storage-> operators.
sequential,
storage,
QNetworkReplyWrapperTask(onFirstSetup, onFirstDone, CallDoneFlag::OnSuccess),
QThreadFunctionTask<QImage>(onSecondSetup)
};Dokumentation zu Mitgliedsfunktionen
Group::Group(const QtTaskTree::GroupItems &children)
Erstellt eine Gruppe mit einer vorgegebenen Liste von ` children`.
Dieser Konstruktor ist nützlich, wenn die untergeordneten Elemente der Gruppe nicht zur Kompilierungszeit, sondern erst später zur Laufzeit bekannt sind:
const QStringList sourceList = ...;
GroupItems groupItems { parallel };
for (const QString &source : sourceList) {
const QNetworkReplyWrapperTask task(...); // use source for setup handler
groupItems << task;
}
const Group group(groupItems);Group::Group(std::initializer_list<QtTaskTree::GroupItem> children)
Erstellt eine Gruppe aus den Elementen „ std::initializer_list “, die durch „ children “ angegeben sind.
Dieser Konstruktor ist nützlich, wenn alle untergeordneten Elemente der Gruppe zur Kompilierungszeit bekannt sind:
const Group group {
finishAllAndSuccess,
QNetworkReplyWrapperTask(...),
Group {
QNetworkReplyWrapperTask(...),
Group {
parallel,
QNetworkReplyWrapperTask(...),
QNetworkReplyWrapperTask(...),
}
QThreadFunctionTask<QString>(...)
}
};© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.