QtTaskTree::GroupItem Class
class QtTaskTree::GroupItemGroupItem representa el elemento básico que puede formar parte de cualquier Group. Más...
| Cabecera: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Desde: | Qt 6.11 |
| Heredado por: |
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
Funciones Públicas
| GroupItem(const QtTaskTree::GroupItems &children) | |
| GroupItem(const QtTaskTree::Storage<StorageStruct> &storage) | |
| GroupItem(std::initializer_list<QtTaskTree::GroupItem> children) |
Descripción detallada
GroupItem es un elemento básico que puede formar parte de cualquier Group. Encapsula la funcionalidad proporcionada por cualquier subclase de GroupItem. Es un tipo de valor y es seguro copiar la instancia de GroupItem, incluso cuando se crea originalmente a través del constructor de la subclase.
Existen cuatro tipos principales de GroupItem:
| GroupItem Tipo | Descripción breve |
|---|---|
| QCustomTask | Define el tipo de tarea asíncrona y los controladores de inicio, finalización y error de la tarea. Alias con un nombre de tarea único, como QThreadFunctionTask<ResultType> o QNetworkReplyWrapperTask. Las tareas asíncronas son la principal razón para utilizar un árbol de tareas. |
| Group | Un contenedor para otros elementos del grupo. Dado que el grupo es del tipo GroupItem, es posible anidarlo dentro de otro grupo. El grupo es visto por su padre como una única tarea asíncrona. |
| GroupItem que contiene Storage | Permite que las tareas secundarias de un grupo intercambien datos. Cuando GroupItem containing Storage se coloca dentro de un grupo, el árbol de tareas instancia el objeto de datos del almacenamiento justo antes de entrar en el grupo, y lo destruye justo después de salir del grupo. |
| Otros elementos de control de grupo | Los elementos ExecutionMode o devueltos por workflowPolicy() influyen en el comportamiento del grupo. Los elementos devueltos por onGroupSetup() o onGroupDone() definen manejadores personalizados llamados cuando el grupo comienza o termina su ejecución. |
Documentación de tipos de miembros
[alias] GroupItem::GroupDoneHandler
Tipo alias para std::function<DoneResult(DoneWith)> o DoneResult.
El GroupDoneHandler es un argumento del elemento onGroupDone(). Cualquier función con la firma anterior, cuando se pasa como manejador de grupo terminado, será llamada por el árbol de tareas en ejecución cuando finalice la ejecución del grupo.
El argumento DoneWith es opcional y el gestor de tareas finalizadas puede omitirlo. Cuando se proporciona, contiene la información sobre el resultado final de un grupo que se comunicará a su padre.
El valor devuelto DoneResult es opcional y su controlador puede devolver void en su lugar. En este caso, el resultado final del grupo será igual al valor indicado por el argumento DoneWith. Cuando el manejador devuelve el valor DoneResult, el resultado final del grupo puede ser ajustado dentro del cuerpo del manejador done por el valor devuelto.
Para un GroupDoneHandler del tipo DoneResult, no se ejecuta ninguna manipulación adicional, y el grupo finaliza incondicionalmente con el valor pasado de DoneResult, ignorando la política de flujo de trabajo del grupo.
Véase también onGroupDone(), GroupSetupHandler, y QCustomTask::TaskDoneHandler.
[alias] GroupItem::GroupSetupHandler
Alias de tipo para std::function<SetupResult()>.
El GroupSetupHandler es un argumento del elemento onGroupSetup(). Cualquier función con la firma anterior, cuando se pasa como manejador de configuración de grupo, será llamada por el árbol de tareas en ejecución cuando se inicie la ejecución del grupo.
El valor de retorno del manejador instruye al grupo en ejecución sobre cómo proceder una vez finalizada la invocación del manejador. El valor de retorno por defecto de SetupResult::Continue indica al grupo que continúe ejecutándose, es decir, que empiece a ejecutar sus tareas hijas. El valor de retorno de SetupResult::StopWithSuccess o SetupResult::StopWithError indica al grupo que omita la ejecución de las tareas secundarias y finalice inmediatamente con éxito o error, respectivamente.
Cuando el tipo de retorno es SetupResult::StopWithSuccess o SetupResult::StopWithError, el gestor de tareas finalizadas del grupo (si se proporciona) se llama de forma sincrónica inmediatamente después.
Nota: Incluso si el gestor de configuración del grupo devuelve StopWithSuccess o StopWithError, se invoca al gestor de tareas realizadas del grupo. Este comportamiento difiere del del gestor de tareas realizadas y podría cambiar en el futuro.
El elemento onGroupSetup() también acepta funciones en la forma abreviada de std::function<void()>, es decir, el valor de retorno es void. En este caso, se asume que el valor de retorno es SetupResult::Continue.
Véase también onGroupSetup(), GroupDoneHandler, y QCustomTask::TaskSetupHandler.
Documentación de funciones miembro
GroupItem::GroupItem(const QtTaskTree::GroupItems &children)
Construye un elemento GroupItem con una lista dada de children.
Cuando este elemento GroupItem es analizado por QTaskTree, simplemente se sustituye por su children.
Este constructor es útil cuando se construye un elemento Group con listas de elementos GroupItem:
static GroupItems getItems(); ... const Group root { parallel, finishAllAndSuccess, getItems(), // GroupItems list is wrapped into a single GroupItem element onGroupSetup(...), onGroupDone(...) };
Si desea crear un subárbol, utilice Group en su lugar.
Nota: No confunda este GroupItem con el elemento Group, ya que Group mantiene sus hijos anidados después de ser analizados por el árbol de tareas, mientras que este GroupItem no lo hace.
Véase también Group.
template <typename StorageStruct> GroupItem::GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)
Construye un elemento GroupItem que contiene el objeto storage.
Cuando el elemento Group que contiene este GroupItem es introducido por el árbol de tareas en ejecución, se crea dinámicamente una instancia del StorageStruct.
Cuando ese grupo está a punto de abandonarse tras su ejecución, se elimina el StorageStruct instanciado previamente.
La instancia de StorageStruct creada dinámicamente es accesible desde el interior de cualquier cuerpo manejador del elemento padre Group, incluidos los grupos anidados y sus tareas, a través del método Storage::operator->(), Storage::operator*() o Storage::activeStorage().
Véase también Storage.
GroupItem::GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)
Esta es una función sobrecargada.
Véase también 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.