Auf dieser Seite

QtTaskTree::GroupItem Class

class QtTaskTree::GroupItem

GroupItem stellt das Basiselement dar, das Teil eines jeden Group sein kann. Mehr...

Kopfzeile: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Seit: Qt 6.11
Geerbt von:

QtTaskTree::ExecutableItem und QtTaskTree::ExecutionMode

Hinweis: Alle Funktionen in 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)

Detaillierte Beschreibung

GroupItem ist ein Basiselement, das Teil einer beliebigen Group sein kann. Es kapselt die Funktionalität, die von jeder GroupItem-Unterklasse bereitgestellt wird. Es ist ein Wertetyp und es ist sicher, die GroupItem-Instanz zu kopieren, selbst wenn sie ursprünglich über den Konstruktor der Unterklasse erstellt wurde.

Es gibt vier Haupttypen von GroupItem:

GroupItem ArtKurzbeschreibung
QCustomTaskDefiniert den asynchronen Aufgabentyp und die Start-, Fertig- und Fehlerhandler der Aufgabe. Alias mit einem eindeutigen Aufgabennamen, z. B. QThreadFunctionTask<ResultType> oder QNetworkReplyWrapperTask. Asynchrone Aufgaben sind der Hauptgrund für die Verwendung eines Aufgabenbaums.
GroupEin Container für andere Gruppenelemente. Da die Gruppe vom Typ GroupItem ist, kann sie in einer anderen Gruppe verschachtelt werden. Die Gruppe wird von ihrem Elternteil als eine einzelne asynchrone Aufgabe betrachtet.
GroupItem enthaltend StorageErmöglicht es den untergeordneten Aufgaben einer Gruppe, Daten auszutauschen. Wenn GroupItem containing Storage innerhalb einer Gruppe platziert wird, instanziiert der Aufgabenbaum das Datenobjekt des Speichers kurz bevor die Gruppe betreten wird und zerstört es kurz nachdem die Gruppe verlassen wird.
Andere GruppensteuerungselementeDie von workflowPolicy() zurückgegebenen ExecutionMode oder Elemente beeinflussen das Verhalten der Gruppe. Die von onGroupSetup() oder onGroupDone() zurückgegebenen Elemente definieren benutzerdefinierte Handler, die aufgerufen werden, wenn die Gruppe ihre Ausführung beginnt oder beendet.

Dokumentation der Mitgliedstypen

[alias] GroupItem::GroupDoneHandler

Typ-Alias für std::function<DoneResult(DoneWith)> oder DoneResult.

Der GroupDoneHandler ist ein Argument des Elements onGroupDone(). Jede Funktion mit der obigen Signatur wird, wenn sie als GroupDoneHandler übergeben wird, vom laufenden Aufgabenbaum aufgerufen, wenn die Ausführung der Gruppe endet.

Das Argument DoneWith ist optional und kann in Ihrem Done-Handler weggelassen werden. Wenn es angegeben wird, enthält es die Information über das Endergebnis einer Gruppe, die an ihre Eltern gemeldet wird.

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 verändert werden.

Bei einem GroupDoneHandler des Typs DoneResult wird keine zusätzliche Behandlung durchgefü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

Typ-Alias für std::function<SetupResult()>.

Der GroupSetupHandler ist ein Argument des Elements onGroupSetup(). Jede Funktion mit der obigen Signatur, die als GroupSetupHandler übergeben wird, wird vom laufenden Aufgabenbaum aufgerufen, wenn die Ausführung der Gruppe beginnt.

Der Rückgabewert des Handlers weist die laufende Gruppe an, wie sie nach Beendigung des Aufrufs des Handlers 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 SetupResult::StopWithSuccess oder SetupResult::StopWithError weist die Gruppe an, die Ausführung der untergeordneten Aufgaben zu überspringen und sofort mit Erfolg bzw. einem Fehler zu beenden.

Wenn der Rückgabetyp SetupResult::StopWithSuccess oder SetupResult::StopWithError ist, wird der done-Handler der Gruppe (falls vorhanden) unmittelbar danach synchron aufgerufen.

Hinweis: Auch wenn der Group Setup Handler StopWithSuccess oder StopWithError zurückgibt, wird der Done Handler der Gruppe aufgerufen. Dieses Verhalten unterscheidet sich von dem des Task-Done-Handlers und könnte sich in Zukunft ändern.

Das Element onGroupSetup() akzeptiert auch Funktionen in der verkürzten Form von std::function<void()>, d. h. der Rückgabewert ist void. In diesem Fall wird angenommen, dass der Rückgabewert SetupResult::Continue ist.

Siehe auch onGroupSetup(), GroupDoneHandler, und QCustomTask::TaskSetupHandler.

Dokumentation der Mitgliedsfunktionen

GroupItem::GroupItem(const QtTaskTree::GroupItems &children)

Konstruiert ein GroupItem-Element mit einer gegebenen Liste von children.

Wenn dieses GroupItem-Element von QTaskTree geparst wird, wird es einfach durch sein children ersetzt.

Dieser Konstruktor ist nützlich, wenn ein Group Element mit Listen von GroupItem-Elementen konstruiert wird:

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 wollen, verwenden Sie stattdessen Group.

Hinweis: Verwechseln Sie dieses GroupItem-Element nicht mit dem Group -Element, da Group seine Kinder verschachtelt behält, nachdem es vom Aufgabenbaum geparst wurde, während dieses GroupItem-Element dies nicht tut.

Siehe auch Group.

template <typename StorageStruct> GroupItem::GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)

Konstruiert ein GroupItem-Element, das das Objekt storage enthält.

Wenn das Element Group, das dieses GroupItem enthält, vom laufenden Aufgabenbaum eingegeben wird, wird dynamisch eine Instanz von StorageStruct erstellt.

Wenn diese Gruppe nach ihrer Ausführung verlassen wird, wird die zuvor instanziierte StorageStruct gelöscht.

Auf die dynamisch erstellte Instanz von StorageStruct kann von jedem Handler-Body des übergeordneten Elements Group aus zugegriffen werden, einschließlich verschachtelter Gruppen und deren Aufgaben, und zwar ü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).

© 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.