QtTaskTree::GroupItem Class
class QtTaskTree::GroupItem„GroupItem“ bezeichnet das Grundelement, das Bestandteil eines beliebigen „ Group “ sein kann. 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 |
| Übernommen von: | |
| Status: | Technologievorschau |
Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
Öffentliche Funktionen
| GroupItem(const QtTaskTree::GroupItems &children) | |
| GroupItem(const QtTaskTree::Storage<StorageStruct> &storage) | |
| GroupItem(std::initializer_list<QtTaskTree::GroupItem> children) | |
| GroupItem(QtTaskTree::GroupItem &&other) |
Ausführliche Beschreibung
GroupItem ist ein Grundelement, das Teil eines beliebigen „ Group “ sein kann. Es kapselt die Funktionalität, die von jeder Unterklasse von GroupItem bereitgestellt wird. Es handelt sich um einen Werttyp, und das Kopieren der GroupItem-Instanz ist sicher, selbst wenn diese ursprünglich über den Konstruktor der Unterklasse erstellt wurde.
Es gibt vier Hauptarten von GroupItem:
| GroupItem Art | Kurzbeschreibung |
|---|---|
| QCustomTask | Definiert einen asynchronen Aufgabentyp sowie die Start-, Abschluss- und Fehlerbehandlungsroutinen der Aufgabe. Wird mit einem eindeutigen Aufgabennamen verknüpft, z. B. „ QThreadFunctionTask<ResultType>“ oder „ QNetworkReplyWrapperTask “. Asynchrone Aufgaben sind der Hauptgrund für die Verwendung eines Aufgabenbaums. |
| Group | Ein Container für andere GroupItems. Da die Gruppe vom Typ „GroupItem“ ist, kann sie in einer anderen Gruppe verschachtelt werden. Die Gruppe wird von ihrer übergeordneten Gruppe als eine einzige asynchrone Aufgabe angesehen. |
| GroupItem mit Storage | Ermöglicht den untergeordneten Aufgaben einer Gruppe den Datenaustausch. Wenn ein „GroupItem containing Storage “ in einer Gruppe platziert wird, instanziiert der Aufgabenbaum das Datenobjekt des Speichers unmittelbar vor dem Eintritt in die Gruppe und löscht es unmittelbar nach dem Verlassen der Gruppe. |
| Weitere Steuerelemente für Gruppen | Die von ` workflowPolicy()` zurückgegebenen Elemente „ ExecutionMode “ oder andere Elemente beeinflussen das Verhalten der Gruppe. Die von ` onGroupSetup()` oder ` onGroupDone()` zurückgegebenen Elemente definieren benutzerdefinierte Handler, die aufgerufen werden, wenn die Gruppe die Ausführung beginnt oder beendet. |
Dokumentation zu Mitgliedstypen
[alias] GroupItem::GroupDoneHandler
Typalias für „ std::function<DoneResult(DoneWith)> “ oder „ DoneResult “.
Der `GroupDoneHandler` ist ein Argument des Elements ` onGroupDone()`. Jede Funktion mit der oben genannten Signatur, die als Gruppen-Done-Handler übergeben wird, wird vom laufenden Aufgabenbaum aufgerufen, sobald die Gruppenausführung beendet ist.
Das Argument ` DoneWith ` ist optional und kann in Ihrem „Done“-Handler weggelassen werden. Wenn es angegeben wird, enthält es Informationen über das Endergebnis einer Gruppe, die an deren übergeordneten Knoten gemeldet werden.
Der zurückgegebene Wert „ DoneResult “ ist optional, und Ihr Handler kann stattdessen „ void “ zurückgeben. In diesem Fall entspricht das Endergebnis der Gruppe dem durch das Argument „ DoneWith “ angegebenen Wert. Wenn der Handler den Wert „ DoneResult “ zurückgibt, kann das Endergebnis der Gruppe innerhalb des Körpers des „done“-Handlers durch den zurückgegebenen Wert angepasst werden.
Bei einem `GroupDoneHandler` vom Typ ` DoneResult ` wird keine zusätzliche Verarbeitung ausgeführt, und die Gruppe wird bedingungslos mit dem übergebenen Wert von ` DoneResult` beendet, wobei die Workflow-Richtlinie der Gruppe ignoriert wird.
Siehe auch „ onGroupDone()“, „ GroupSetupHandler “ und „ QCustomTask::TaskDoneHandler “.
[alias] GroupItem::GroupSetupHandler
Typalias für „ std::function<SetupResult()> “.
Der `GroupSetupHandler` ist ein Argument des Elements ` onGroupSetup()`. Jede Funktion mit der oben genannten Signatur, die als Gruppen-Setup-Handler übergeben wird, wird vom laufenden Aufgabenbaum aufgerufen, sobald die Gruppenausführung beginnt.
Der Rückgabewert des Handlers gibt der laufenden Gruppe vor, wie sie nach Beendigung des Handleraufrufs fortfahren soll. Der Standardrückgabewert von ` SetupResult::Continue ` weist die Gruppe an, die Ausführung fortzusetzen, d. h. mit der Ausführung ihrer untergeordneten Aufgaben zu beginnen. Der Rückgabewert von ` SetupResult::StopWithSuccess ` oder ` SetupResult::StopWithError ` weist die Gruppe an, die Ausführung der untergeordneten Aufgaben zu überspringen und die Ausführung sofort erfolgreich bzw. mit einem Fehler zu beenden.
Wenn der Rückgabetyp entweder ` SetupResult::StopWithSuccess ` oder ` SetupResult::StopWithError` ist, wird der `done`-Handler der Gruppe (sofern vorhanden) unmittelbar danach synchron aufgerufen.
Hinweis: Selbst wenn der Setup-Handler der Gruppe „ StopWithSuccess “ oder „ StopWithError “ zurückgibt, wird der „done“-Handler der Gruppe aufgerufen. Dieses Verhalten unterscheidet sich von dem des „done“-Handlers einer Aufgabe und kann sich in Zukunft ändern.
Das Element ` onGroupSetup()` akzeptiert auch Funktionen in der verkürzten Form ` std::function<void()>`, d. h., der Rückgabewert lautet ` void`. In diesem Fall wird davon ausgegangen, dass der Rückgabewert ` SetupResult::Continue` ist.
Siehe auch „ onGroupSetup()“, „ GroupDoneHandler “ und „ QCustomTask::TaskSetupHandler “.
Dokumentation zu Mitgliedsfunktionen
GroupItem::GroupItem(const QtTaskTree::GroupItems &children)
Erstellt ein GroupItem-Element mit einer vorgegebenen Liste von children.
Wenn dieses „GroupItem“-Element von der „ QTaskTree “ geparst wird, wird es einfach durch sein „ children “ ersetzt.
Dieser Konstruktor ist nützlich, wenn ein „ Group “-Element mit Listen von „GroupItem“-Elementen erstellt werden soll:
static GroupItems getItems();
...
const Group root {
parallel,
finishAllAndSuccess,
getItems(), // GroupItems list is wrapped into a single GroupItem element
onGroupSetup(...),
onGroupDone(...)
};Wenn Sie einen Teilbaum erstellen möchten, verwenden Sie stattdessen „ Group “.
Hinweis: VerwechselnSie dieses `GroupItem`nicht mit dem ` Group `-Element, da ` Group ` seine untergeordneten Elemente nach der Analyse durch den Aufgabenbaum verschachtelt beibehält, während dies bei diesem `GroupItem` nicht der Fall ist.
Siehe auch „ Group “.
template <typename StorageStruct> GroupItem::GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)
Erstellt ein „GroupItem“-Element, das das „ storage “-Objekt enthält.
Wenn das „ Group “-Element, das dieses „GroupItem“ enthält, vom laufenden Aufgabenbaum aufgerufen wird, wird dynamisch eine Instanz des „ StorageStruct “ erstellt.
Wenn diese Gruppe nach ihrer Ausführung verlassen wird, wird das zuvor instanziierte „ StorageStruct “ gelöscht.
Auf die dynamisch erstellte Instanz von ` StorageStruct ` kann von jedem Handler-Körper des übergeordneten ` Group `-Elements aus zugegriffen werden – einschließlich verschachtelter Gruppen und deren Aufgaben – über die Methoden ` Storage::operator->()`, ` Storage::operator*()` oder ` Storage::activeStorage()`.
Siehe auch Storage.
GroupItem::GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)
Dies ist eine überladene Funktion.
Siehe auch GroupItem(const QtTaskTree::GroupItems &children).
[constexpr noexcept default] GroupItem::GroupItem(QtTaskTree::GroupItem &&other)
Erzeugt eine Instanz von „ GroupItem “.
© 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.