이 페이지에서

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::ExecutableItem 및 QtTaskTree::ExecutionMode

상태: 기술 미리보기

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

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

공개 유형

공개 함수

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

상세 설명

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 에 대한 타입 별칭입니다.

GroupDoneHandler는 onGroupDone() 요소의 인자입니다. 위의 시그니처를 갖는 함수는 그룹 완료 핸들러로 전달될 경우, 그룹 실행이 종료될 때 실행 중인 작업 트리에서 호출됩니다.

DoneWith 매개변수는 선택 사항이며, 완료 핸들러에서 이를 생략할 수 있습니다. 이 매개변수가 제공되면, 그룹의 최종 결과에 대한 정보를 포함하여 상위 요소에 보고됩니다.

반환되는 DoneResult 값은 선택 사항이며, 핸들러는 대신 void 를 반환할 수도 있습니다. 이 경우, 그룹의 최종 결과는 DoneWith 인자가 나타내는 값과 동일해집니다. 핸들러가 DoneResult 값을 반환할 때, 그룹의 최종 결과는 반환된 값을 통해 done 핸들러 본문 내에서 조정될 수 있습니다.

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

onGroupDone(), GroupSetupHandler 및 QCustomTask::TaskDoneHandler도 참조하십시오 .

[alias] GroupItem::GroupSetupHandler

std::function<SetupResult()> 의 타입 별칭입니다.

GroupSetupHandler는 onGroupSetup() 요소의 인자입니다. 위의 시그니처를 갖는 함수는 그룹 설정 핸들러로 전달될 경우, 그룹 실행이 시작될 때 실행 중인 작업 트리에서 호출됩니다.

핸들러의 반환 값은 핸들러 호출이 완료된 후 실행 중인 그룹이 어떻게 진행해야 하는지를 지시합니다. ` SetupResult::Continue `의 기본 반환 값은 그룹이 실행을 계속하도록, 즉 자식 태스크의 실행을 시작하도록 지시합니다. ` SetupResult::StopWithSuccess ` 또는 ` SetupResult::StopWithError `의 반환 값은 그룹이 자식 태스크의 실행을 건너뛰고 각각 성공 또는 오류 상태로 즉시 종료하도록 지시합니다.

반환 유형이 SetupResult::StopWithSuccess 또는 SetupResult::StopWithError 인 경우, 그룹의 done 핸들러(지정된 경우)가 그 직후에 동기식으로 호출됩니다.

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

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 을 사용하십시오.

참고: 이 GroupItem을 Group 요소와 혼동하지마십시오 . Group 은 작업 트리에 의해 파싱된 후에도 자식 요소를 중첩된 상태로 유지하는 반면, 이 GroupItem은 그렇지 않기 때문입니다.

Group도 참조하십시오 .

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

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

이 GroupItem을 포함하는 ` Group ` 요소에 실행 중인 작업 트리가 진입하면, ` StorageStruct `의 인스턴스가 동적으로 생성됩니다.

해당 그룹의 실행이 끝나고 그룹을 벗어나게 되면, 이전에 인스턴스화되었던 StorageStruct 이 삭제됩니다.

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

Storage도 참조하십시오 .

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

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

GroupItem(const QtTaskTree::GroupItems &children)도 참조하십시오 .

[constexpr noexcept default] GroupItem::GroupItem(QtTaskTree::GroupItem &&other)

GroupItem 의 인스턴스를 생성합니다.

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