이 페이지에서

QtTaskTree::UntilIterator Class

class QtTaskTree::UntilIterator

For element 내에서 사용될 조건부 반복자. 더 보기...

헤더: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
다음부터: Qt 6.11
상속: QtTaskTree::Iterator
상태: 기술 미리보기

이 클래스는 기술 미리보기 단계에 있으며 변경될 수 있습니다.

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 함수

UntilIterator(const QtTaskTree::Iterator::Condition &condition)

자세한 설명

Iterator, ForeverIterator, RepeatIterator 및 ListIterator도 참조하십시오 .

멤버 함수 설명

[explicit] UntilIterator::UntilIterator(const QtTaskTree::Iterator::Condition &condition)

For (UntilIterator(condition)) >> Do {} 구문을 위한 조건부 반복자를 생성합니다. 이 반복자는 전달된 condition 가 true를 반환할 때까지 반복됩니다.

사용 예시:

static const int maxNumber = 10;
const int luckyNumber = QRandomGenerator().global()->bounded(maxNumber);

qDebug() << "Today's lucky number is:" << luckyNumber;
qDebug() << "Let's start the drawing...";

const auto onConditionCheck = [luckyNumber](int iteration) {
    if (iteration== 0)
        return true;
    const int drawnNumber = QRandomGenerator().global()->bounded(maxNumber);
    qDebug() << "You have drawn:" << drawnNumber;
   bool won = drawnNumber== luckyNumber;
    if (won)
        qDebug() << "You have won! Congratulations!";
   return !won;
};

const Group recipe = For (UntilIterator(onConditionCheck)) >> Do {
    timeoutTask(1s, DoneResult::Success)
};

QTaskTree 에 의해 recipe 가 시작되었을 때 나올 수 있는 결과는 다음과 같습니다:

Today's lucky number is: 7
Let's start the drawing...
You have drawn: 2
You have drawn: 5
You have drawn: 0
You have drawn: 2
You have drawn: 4
You have drawn: 9
You have drawn: 9
You have drawn: 7
You have won! Congratulations!

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