Sur cette page

QtTaskTree::GroupItem Class

class QtTaskTree::GroupItem

GroupItem représente l'élément de base qui peut faire partie de n'importe quelle Group. Plus...

En-tête : #include <qtasktree.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake : QT += tasktree
Depuis : Qt 6.11
Hérité par :

QtTaskTree::ExecutableItem et QtTaskTree::ExecutionMode

Note : Toutes les fonctions de cette classe sont réentrantes.

Types publics

Fonctions publiques

GroupItem(const QtTaskTree::GroupItems &children)
GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)
GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)

Description détaillée

GroupItem est un élément de base qui peut faire partie de n'importe quel site Group. Il encapsule les fonctionnalités fournies par toute sous-classe de GroupItem. Il s'agit d'un type de valeur et il est possible de copier l'instance de GroupItem en toute sécurité, même si elle a été créée à l'origine via le constructeur de la sous-classe.

Il existe quatre types principaux de GroupItem :

GroupItem TypeBrève description
QCustomTaskDéfinit le type de tâche asynchrone et les gestionnaires de démarrage, d'achèvement et d'erreur de la tâche. Alias avec un nom de tâche unique, tel que QThreadFunctionTask<ResultType> ou QNetworkReplyWrapperTask. Les tâches asynchrones sont la principale raison d'utiliser un arbre des tâches.
GroupUn conteneur pour les autres éléments du groupe. Le groupe étant de type GroupItem, il est possible de l'imbriquer dans un autre groupe. Le groupe est considéré par son parent comme une seule tâche asynchrone.
GroupItem contenant StoragePermet aux tâches enfants d'un groupe d'échanger des données. Lorsque GroupItem containing Storage est placé à l'intérieur d'un groupe, l'arbre des tâches instancie l'objet de données du stockage juste avant l'entrée dans le groupe et le détruit juste après la sortie du groupe.
Autres éléments de contrôle de groupeLes éléments ExecutionMode ou retournés par workflowPolicy() influencent le comportement du groupe. Les éléments renvoyés par onGroupSetup() ou onGroupDone() définissent des gestionnaires personnalisés appelés lorsque le groupe commence ou termine son exécution.

Documentation sur les types de membres

[alias] GroupItem::GroupDoneHandler

Type alias pour std::function<DoneResult(DoneWith)> ou DoneResult.

Le GroupDoneHandler est un argument de l'élément onGroupDone(). Toute fonction portant la signature ci-dessus, lorsqu'elle est transmise en tant que gestionnaire d'exécution de groupe, sera appelée par l'arbre des tâches en cours d'exécution lorsque l'exécution du groupe se terminera.

L'argument DoneWith est facultatif et votre gestionnaire de tâches peut l'omettre. Lorsqu'il est fourni, il contient l'information sur le résultat final d'un groupe qui sera rapporté à son parent.

La valeur DoneResult renvoyée est facultative et votre gestionnaire peut renvoyer void à la place. Dans ce cas, le résultat final du groupe sera égal à la valeur indiquée par l'argument DoneWith. Lorsque le gestionnaire renvoie la valeur DoneResult, le résultat final du groupe peut être modifié dans le corps du gestionnaire done en fonction de la valeur renvoyée.

Pour un GroupDoneHandler de type DoneResult, aucune manipulation supplémentaire n'est exécutée, et le groupe se termine inconditionnellement avec la valeur passée de DoneResult, en ignorant la politique de flux de travail du groupe.

Voir aussi onGroupDone(), GroupSetupHandler, et QCustomTask::TaskDoneHandler.

[alias] GroupItem::GroupSetupHandler

Type alias pour std::function<SetupResult()>.

Le GroupSetupHandler est un argument de l'élément onGroupSetup(). Toute fonction portant la signature ci-dessus, lorsqu'elle est transmise en tant que gestionnaire de configuration de groupe, sera appelée par l'arbre des tâches en cours d'exécution lorsque l'exécution du groupe commencera.

La valeur de retour du gestionnaire indique au groupe en cours d'exécution comment procéder une fois l'invocation du gestionnaire terminée. La valeur de retour par défaut de SetupResult::Continue indique au groupe de poursuivre son exécution, c'est-à-dire de commencer à exécuter ses tâches enfant. La valeur de retour SetupResult::StopWithSuccess ou SetupResult::StopWithError indique au groupe d'ignorer l'exécution des tâches enfant et de terminer immédiatement avec un succès ou une erreur, respectivement.

Lorsque le type de retour est SetupResult::StopWithSuccess ou SetupResult::StopWithError, le gestionnaire de tâches terminées du groupe (s'il est fourni) est appelé de manière synchrone immédiatement après.

Remarque : même si le gestionnaire de configuration du groupe renvoie StopWithSuccess ou StopWithError, le gestionnaire d'exécution du groupe est appelé. Ce comportement diffère de celui du gestionnaire de tâches effectuées et pourrait changer à l'avenir.

L'élément onGroupSetup() accepte également les fonctions sous la forme abrégée de std::function<void()>, c'est-à-dire que la valeur de retour est void. Dans ce cas, on suppose que la valeur de retour est SetupResult::Continue.

Voir également onGroupSetup(), GroupDoneHandler et QCustomTask::TaskSetupHandler.

Documentation sur les fonctions membres

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

Construit un élément GroupItem avec une liste donnée de children.

Lorsque cet élément GroupItem est analysé par QTaskTree, il est simplement remplacé par son children.

Ce constructeur est utile pour construire un élément Group avec des listes d'éléments GroupItem :

static GroupItems getItems();

...

const Group root {
    parallel,
    finishAllAndSuccess,
    getItems(), // GroupItems list is wrapped into a single GroupItem element
    onGroupSetup(...),
    onGroupDone(...)
};

Si vous souhaitez créer un sous-arbre, utilisez plutôt Group.

Note : Ne confondez pas ce GroupItem avec l'élément Group, car Group garde ses enfants imbriqués après avoir été analysés par l'arbre des tâches, alors que ce GroupItem ne le fait pas.

Voir aussi Group.

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

Construit un élément GroupItem contenant l'objet storage.

Lorsque l'élément Group contenant ce GroupItem est saisi par l'arbre des tâches en cours d'exécution, une instance de l'objet StorageStruct est créée dynamiquement.

Lorsque ce groupe est sur le point d'être quitté après son exécution, l'objet StorageStruct précédemment instancié est supprimé.

L'instance de StorageStruct créée dynamiquement est accessible à partir de n'importe quel corps de gestionnaire de l'élément parent Group, y compris les groupes imbriqués et ses tâches, via la méthode Storage::operator->(), Storage::operator*() ou Storage::activeStorage().

Voir également Storage.

GroupItem::GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)

Il s'agit d'une fonction surchargée.

Voir aussi 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.