QtTaskTree::RepeatIterator Class
class QtTaskTree::RepeatIteratorFor 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 |
| 상태: | 기술 미리 보기 |
이 클래스는 기술 미리보기 단계에 있으며 변경될 수 있습니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 함수
| RepeatIterator(qsizetype count) |
Iterator, ForeverIterator, UntilIterator 및 ListIterator도 참조하십시오 .
멤버 함수 설명
[explicit] RepeatIterator::RepeatIterator(qsizetype count)
For (RepeatIterator(count)) >> Do {} 구문을 위한 반복 이터레이터를 생성합니다. 이 이터레이터는 count 번 반복됩니다.
사용 예시:
static const int maxTries = 5;
static const int maxNumber = 10;
const int luckyNumber = QRandomGenerator().global()->bounded(maxNumber);
qDebug() << "Today's lucky number is:" << luckyNumber;
qDebug() << "You have" << maxTries << "lottery tickets.";
qDebug() << "Let's start the drawing...";
const auto onNumberCheck = [luckyNumber] {
const int drawnNumber = QRandomGenerator().global()->bounded(maxNumber);
qDebug() << "You have drawn:" << drawnNumber;
return drawnNumber== luckyNumber;
};
const auto onDone = [](DoneWith result) {
if (result== DoneWith::Success)
qDebug() << "You have won! Congratulations!";
else if (result== DoneWith::Error)
qDebug() << "You have lost. Try again.";
};
const Group recipe {
For (RepeatIterator(maxTries)) >> Do {
stopOnSuccess,
timeoutTask(1s),
QSyncTask(onNumberCheck)
},
onGroupDone(onDone)
};QTaskTree 에 의해 recipe 가 시작되어 성공적으로 완료되었을 때 나올 수 있는 출력은 다음과 같습니다:
Today's lucky number is: 6
You have 5 lottery tickets.
Let's start the drawing...
You have drawn: 9
You have drawn: 6
You have won! Congratulations!오류가 발생하여 종료되는 경우, 출력은 다음과 같을 수 있습니다:
Today's lucky number is: 8
You have 5 lottery tickets.
Let's start the drawing...
You have drawn: 1
You have drawn: 7
You have drawn: 6
You have drawn: 7
You have drawn: 2
You have lost. Try again.© 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.