이 페이지에서

QtTaskTree::GroupItem Class

class QtTaskTree::GroupItem

GroupItem은 Group 의 일부가 될 수 있는 기본 요소를 나타냅니다. 더 보기...

헤더: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
이후: Qt 6.11
에 의해 상속되었습니다:

QtTaskTree::ExecutableItemQtTaskTree::ExecutionMode

참고: 이 클래스의 모든 함수는 재인용됩니다.

공용 유형

공용 함수

GroupItem(const QtTaskTree::GroupItems &children)
GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)
GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)

상세 설명

GroupItem은 Group 의 일부가 될 수 있는 기본 요소입니다. GroupItem의 서브클래스가 제공하는 기능을 캡슐화합니다. 값 유형이며, 서브클래스의 생성자를 통해 원래 생성된 경우에도 GroupItem 인스턴스를 복사해도 안전합니다.

GroupItem에는 네 가지 주요 유형이 있습니다:

GroupItem 종류간단한 설명
QCustomTask비동기 작업 유형과 작업의 시작, 완료 및 오류 처리기를 정의합니다. QThreadFunctionTask <ResultType> 또는 QNetworkReplyWrapperTask 과 같은 고유한 작업 이름으로 별칭을 붙입니다. 비동기 작업은 작업 트리를 사용하는 주된 이유입니다.
Group다른 그룹 항목을 위한 컨테이너. 그룹은 GroupItem 유형이므로 다른 그룹 안에 중첩할 수 있습니다. 그룹은 부모에게 하나의 비동기 작업으로 보입니다.
GroupItem 포함 Storage그룹의 하위 작업들이 데이터를 교환할 수 있도록 합니다. Storage 을 포함하는 GroupItem을 그룹 안에 배치하면 작업 트리는 그룹이 들어가기 직전에 스토리지의 데이터 개체를 인스턴스화하고 그룹이 나간 직후에 해당 개체를 소멸시킵니다.
기타 그룹 제어 항목ExecutionMode 또는 workflowPolicy()에서 반환된 항목은 그룹의 동작에 영향을 줍니다. onGroupSetup () 또는 onGroupDone()에서 반환되는 항목은 그룹이 실행을 시작하거나 종료할 때 호출되는 사용자 정의 핸들러를 정의합니다.

멤버 유형 문서

[alias] GroupItem::GroupDoneHandler

별칭을 std::function<DoneResult(DoneWith)> 또는 DoneResult 으로 입력합니다.

그룹 완료 핸들러는 onGroupDone() 요소의 인수입니다. 위의 서명을 가진 함수는 그룹 완료 핸들러로 전달되면 그룹 실행이 종료될 때 실행 중인 작업 트리에서 호출됩니다.

DoneWith 인수는 선택 사항이며 완료 처리기에서 생략할 수 있습니다. 제공되면 부모에게 보고될 그룹의 최종 결과에 대한 정보를 보유합니다.

반환된 DoneResult 값은 선택 사항이며 처리기는 void 대신 반환할 수 있습니다. 이 경우 그룹의 최종 결과는 DoneWith 인수가 지정한 값과 동일합니다. 처리기가 DoneResult 값을 반환하면 그룹의 최종 결과는 완료 처리기의 본문 내에서 반환된 값에 따라 조정될 수 있습니다.

DoneResult 유형의 그룹 완료 핸들러의 경우 추가 처리가 실행되지 않으며 그룹의 워크플로 정책을 무시하고 전달된 값 DoneResult 으로 그룹이 무조건 완료됩니다.

onGroupDone(), GroupSetupHandler, 및 QCustomTask::TaskDoneHandler도 참조하세요 .

[alias] GroupItem::GroupSetupHandler

std::function<SetupResult()> 에 대한 별칭을 입력합니다.

그룹 설정 핸들러는 onGroupSetup() 요소의 인수입니다. 위의 서명을 가진 함수가 그룹 설정 핸들러로 전달되면 그룹 실행이 시작될 때 실행 중인 작업 트리에서 호출됩니다.

핸들러의 반환 값은 핸들러 호출이 완료된 후 실행 중인 그룹에 진행 방법을 알려줍니다. 기본 반환값인 SetupResult::Continue 은 그룹이 계속 실행되도록, 즉 하위 작업의 실행을 시작하도록 지시합니다. SetupResult::StopWithSuccess 또는 SetupResult::StopWithError 의 반환 값은 각각 성공 또는 오류로 그룹이 하위 작업의 실행을 건너뛰고 즉시 완료하도록 지시합니다.

반환 유형이 SetupResult::StopWithSuccess 또는 SetupResult::StopWithError 인 경우 그룹의 완료 핸들러(제공된 경우)가 즉시 동기적으로 호출됩니다.

참고: 그룹 설정 핸들러가 StopWithSuccess 또는 StopWithError 을 반환하더라도 그룹의 완료 핸들러가 호출됩니다. 이 동작은 작업 완료 핸들러의 동작과 다르며 향후 변경될 수 있습니다.

onGroupSetup() 요소는 std::function<void()> 의 단축된 형식, 즉 반환값이 void 인 함수도 허용합니다. 이 경우 반환값은 SetupResult::Continue 으로 가정합니다.

onGroupSetup(), GroupDoneHandler, QCustomTask::TaskSetupHandler도 참조하세요 .

멤버 함수 문서

GroupItem::GroupItem(const QtTaskTree::GroupItems &children)

주어진 목록 children 으로 GroupItem 엘리먼트를 생성합니다.

이 GroupItem 요소가 QTaskTree 에 의해 파싱되면 간단히 children 으로 대체됩니다.

이 생성자는 GroupItem 요소의 목록으로 Group 요소를 생성할 때 유용합니다:

static GroupItems getItems();

...

const Group root {
    parallel,
    finishAllAndSuccess,
    getItems(), // GroupItems list is wrapped into a single GroupItem element
    onGroupSetup(...),
    onGroupDone(...)
};

하위 트리를 만들려면 Group 대신 사용하세요.

참고: Group 은 작업 트리에 의해 파싱된 후에도 그 자식들이 중첩된 상태를 유지하지만 이 GroupItem은 그렇지 않으므로 이 GroupItem을 Group 요소와 혼동하지 마세요.

Group도 참조하세요 .

template <typename StorageStruct> GroupItem::GroupItem(const QtTaskTree::Storage<StorageStruct> &storage)

storage 객체를 포함하는 GroupItem 요소를 생성합니다.

실행 중인 작업 트리에서 GroupItem이 포함된 Group 요소를 입력하면 StorageStruct 인스턴스가 동적으로 생성됩니다.

해당 그룹이 실행 후 종료되면 이전에 인스턴스화된 StorageStruct 인스턴스가 삭제됩니다.

동적으로 생성된 StorageStruct 인스턴스는 Storage::operator->(), Storage::operator*() 또는 Storage::activeStorage() 메서드를 통해 중첩된 그룹 및 해당 작업을 포함하여 상위 Group 요소의 모든 핸들러 본문 내부에서 액세스할 수 있습니다.

Storage도 참조하세요 .

GroupItem::GroupItem(std::initializer_list<QtTaskTree::GroupItem> children)

이 함수는 오버로드된 함수입니다.

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.