QtTaskTree::If Class
class QtTaskTree::IfElemento "if" utilizado en expresiones condicionales. Más...
| Cabecera: | #include <qconditional.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Desde: | Qt 6.11 |
Nota: Todas las funciones de esta clase son reentrantes.
Funciones Públicas
Descripción Detallada
Elemento de condición inicial de las expresiones condicionales. Siempre debe ir seguido del elemento Then.
Las expresiones condicionales del módulo TaskTree permiten procesar las condiciones de rama y sus cuerpos de forma asíncrona. Por ejemplo:
const Group recipe { If (conditionTask1) >> Then { bodyTask1 } >> ElseIf (conditionTask2) >> Then { bodyTask2 } >> Else { bodyTask3 } };
Cuando la receta anterior se ejecuta con QTaskTree, el árbol de tareas inicia primero la asíncrona conditionTask1. Después de que haya terminado, dependiendo del resultado, el árbol de tareas puede ejecutar bodyTask1 cuando conditionTask1 haya terminado con éxito, o despachar otra condición ejecutando conditionTask2 en caso contrario. En caso de que se ejecute bodyTask1, no se ejecuta ninguna otra tarea, y el resultado de bodyTask1 es el resultado final de toda la expresión condicional.
Véase también Then, Else, y ElseIf.
Documentación de funciones miembro
[explicit] If::If(const QtTaskTree::ExecutableItem &condition)
Crea un elemento de condición inicial con la tarea condition que se utilizará en la expresión condicional. La ejecución de QTaskTree ejecuta primero la tarea condition pasada y, una vez finalizada, se ejecuta la rama Then (en caso de éxito) u, opcionalmente, la rama Else o la condición ElseIf en caso contrario.
El condition pasado puede consistir en múltiples tareas encerradas en Group elemento, o ser una conjunción o disyunción de ellos, como:
const Group subRecipe { parallel, parallelConditionTask1, parallelConditionTask2 }; const Group recipe { If (conditionTask1 && !conditionTask2) >> Then { bodyTask1 } >> ElseIf (subRecipe) >> Then { bodyTask2 } >> Else { bodyTask3 } };
[explicit] template <typename Handler, std::enable_if_t<!std::is_base_of_v<ExecutableItem, std::decay_t<Handler>>, bool> = true> If::If(Handler &&handler)
Un constructor de ayuda que acepta el handler síncrono que se ejecutará al evaluar la condición inicial por el QTaskTree en ejecución .
Es un atajo para:
If (QSyncTask(handler))Ver QSyncTask para más información sobre qué tipos de manejadores son aceptables.
Es una función sobrecargada.
© 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.