QtTaskTree::If Class
class QtTaskTree::IfEin "if"-Element, das in bedingten Ausdrücken verwendet wird. Mehr...
| Kopfzeile: | #include <qconditional.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Seit: | Qt 6.11 |
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
Detaillierte Beschreibung
Ein anfängliches Bedingungselement der bedingten Ausdrücke. Muss immer von einem Then Element gefolgt werden.
Die bedingten Ausdrücke im TaskTree-Modul ermöglichen die asynchrone Verarbeitung von Verzweigungsbedingungen und deren Rumpf. Ein Beispiel:
const Group recipe { If (conditionTask1) >> Then { bodyTask1 } >> ElseIf (conditionTask2) >> Then { bodyTask2 } >> Else { bodyTask3 } };
Wenn das obige Rezept mit QTaskTree ausgeführt wird, startet der TaskTree zuerst die asynchrone conditionTask1. Nach dessen Beendigung kann der Aufgabenbaum je nach Ergebnis entweder die bodyTask1 ausführen, wenn die conditionTask1 erfolgreich beendet wurde, oder andernfalls eine andere Bedingung durch die Ausführung von conditionTask2 abarbeiten. Falls bodyTask1 ausgeführt wird, werden keine anderen Aufgaben ausgeführt, und das Ergebnis von bodyTask1 ist das Endergebnis des gesamten bedingten Ausdrucks.
Siehe auch Then, Else, und ElseIf.
Dokumentation der Mitgliedsfunktionen
[explicit] If::If(const QtTaskTree::ExecutableItem &condition)
Erstellt ein anfängliches Bedingungselement mit condition Aufgabe, das in einem bedingten Ausdruck verwendet werden soll. Die laufende QTaskTree führt zuerst die übergebene condition aus, und nachdem sie fertig ist, wird entweder die Then Verzweigung ausgeführt (bei Erfolg), oder optional Else Verzweigung oder ElseIf Bedingung sonst.
Die übergebene condition kann aus mehreren Aufgaben bestehen, die in einem Group Element eingeschlossen sind, oder eine Konjunktion oder Disjunktion von ihnen sein, wie z.B.:
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)
Ein Hilfskonstruktor, der die synchrone handler akzeptiert, die bei der Auswertung der Anfangsbedingung durch die laufende QTaskTree ausgeführt wird.
Es ist eine Abkürzung für:
If (QSyncTask(handler))Siehe QSyncTask für weitere Informationen darüber, welche Handler-Typen akzeptabel sind.
Dies ist eine überladene Funktion.
© 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.