QtTaskTree Namespace
QtTaskTree 命名空间包含 TaskTree 模块的所有类和全局函数。更多
| 头文件: | #include <QtTaskTree> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| 自 | Qt 6.11 |
类
(since 6.11) class | Do |
(since 6.11) class | Else |
(since 6.11) class | ElseIf |
(since 6.11) class | ExecutableItem |
(since 6.11) class | ExecutionMode |
(since 6.11) class | For |
(since 6.11) class | Forever |
(since 6.11) class | ForeverIterator |
(since 6.11) class | Group |
(since 6.11) class | GroupItem |
(since 6.11) class | If |
(since 6.11) class | Iterator |
(since 6.11) class | ListIterator |
(since 6.11) struct | ObjectSignal |
(since 6.11) class | ParallelLimit |
(since 6.11) class | QBarrier |
(since 6.11) class | QCustomTask |
(since 6.11) class | QDefaultTaskAdapter |
(since 6.11) class | QMappedTaskTreeRunner |
(since 6.11) class | QNetworkReplyWrapper |
(since 6.11) class | QParallelTaskTreeRunner |
(since 6.11) class | QProcessTaskDeleter |
(since 6.11) class | QSequentialTaskTreeRunner |
(since 6.11) class | QSingleTaskTreeRunner |
(since 6.11) class | QStartedBarrier |
(since 6.11) class | QSyncTask |
(since 6.11) class | QTaskInterface |
(since 6.11) class | QTaskTree |
(since 6.11) class | QTcpSocketWrapper |
(since 6.11) class | QThreadFunction |
(since 6.11) class | QThreadFunctionBase |
(since 6.11) class | RepeatIterator |
(since 6.11) class | Storage |
(since 6.11) class | Then |
(since 6.11) class | UntilIterator |
(since 6.11) class | When |
类型
| BarrierKickerGetter | |
| flags | CallDone |
| enum class | CallDoneFlag { Never, OnSuccess, OnError, OnCancel, Always } |
| enum class | DoneResult { Success, Error } |
| enum class | DoneWith { Success, Error, Cancel } |
| GroupItems | |
| QBarrierTask | |
| QNetworkReplyWrapperTask | |
| QProcessTask | |
| QStoredBarrier | |
| QTaskTreeTask | |
| QTcpSocketWrapperTask | |
| QThreadFunctionTask | |
| QTimeoutTask | |
| enum class | SetupResult { Continue, StopWithSuccess, StopWithError } |
| TreeDoneHandler | |
| TreeSetupHandler | |
| enum class | WorkflowPolicy { StopOnError, ContinueOnError, StopOnSuccess, ContinueOnSuccess, StopOnSuccessOrError, …, FinishAllAndError } |
变量
| const QtTaskTree::GroupItem | continueOnError |
| const QtTaskTree::GroupItem | continueOnSuccess |
| const QtTaskTree::ExecutableItem | errorItem |
| const QtTaskTree::GroupItem | finishAllAndError |
| const QtTaskTree::GroupItem | finishAllAndSuccess |
| const QtTaskTree::GroupItem | nullItem |
| const QtTaskTree::ExecutionMode | parallel |
| const QtTaskTree::ExecutionMode | parallelIdealThreadCountLimit |
| const QtTaskTree::ExecutionMode | sequential |
| const QtTaskTree::GroupItem | stopOnError |
| const QtTaskTree::GroupItem | stopOnSuccess |
| const QtTaskTree::GroupItem | stopOnSuccessOrError |
| const QtTaskTree::ExecutableItem | successItem |
函数
| QtTaskTree::ExecutableItem | barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier) |
| QtTaskTree::ObjectSignal<std::decay_t<Signal>> | makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal) |
| QtTaskTree::GroupItem | onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always) |
| QtTaskTree::GroupItem | onGroupSetup(Handler &&handler) |
| QtTaskTree::ExecutableItem | signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal) |
| QtTaskTree::ExecutableItem | timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error) |
| QtTaskTree::GroupItem | workflowPolicy(QtTaskTree::WorkflowPolicy policy) |
类
类Do
用于 For 和 When 结构的主体元素。更多
类Else
条件表达式中使用的 "else "元素。更多
类ElseIf
条件表达式中使用的 "else if "元素。更多
类ExecutableItem
可执行任务项的基类。更多
类执行模式
描述执行模式的组元素。更多
类For
for 循环元素。更多
类Forever
子任务的无限循环。更多
类ForeverIterator
用于 For 元素的无限迭代器。更多
组类
Group 表示组成声明式配方的基本元素,描述如何执行和处理嵌套的异步任务树。更多
类GroupItem
GroupItem 表示基本元素,可作为任何Group 的一部分。更多
类If
条件表达式中使用的 "if "元素。更多
迭代器类
在 For 元素中用作迭代器的基类。更多
类ListIterator
用于 For 元素的列表迭代器。更多
类对象信号
类并行限制
具有自定义限制的并行执行模式。更多
类QBarrier
按需完成的异步任务。更多
类QCustomTask
用于声明自定义任务项并定义其设置和完成处理程序的类模板。更多
类QDefaultTaskAdapter
一个类模板,提供QCustomTask 中使用的默认任务适配器。更多
类QMappedTaskTreeRunner
具有给定关键字类型的映射任务树执行控制器。更多
类QNetworkReplyWrapper
QNetworkReply 和QNetworkAccessManager 的包装器。更多
类QParallelTaskTreeRunner
并行任务树执行控制器。更多
类QProcessTaskDeleter
QProcess 的自定义删除程序,由QProcessTask 使用。更多
类QSequentialTaskTreeRunner
顺序任务树执行控制器。更多
类QSingleTaskTreeRunner
单任务树执行控制器。更多
类QStartedBarrier
类QSyncTask
在其他任务之间同步执行自定义处理程序。更多
类QTaskInterface
QTaskInterface 是一个辅助类,用于调整自定义任务的界面。更多
类QTaskTree
QTaskTree 类运行以声明方式定义的异步任务树。更多
类QTcpSocketWrapper
QTcpSocket 的包装器。更多
类QThreadFunction
通过 QtConcurrent::run() 在单独线程中控制函数执行的类模板。更多
类QThreadFunctionBase
QThreadFunction 类模板的基类。更多
类重复迭代器
用于 For 元素内部的重复迭代器。更多
类存储
用于在运行任务树中进行自定义数据交换的类模板。更多
然后类
条件表达式中使用的 "then "元素。更多
类UntilIterator
在 For 元素中使用的条件迭代器。更多
当
延迟执行正文直到障碍提前的元素。更多
类型文档
[alias] BarrierKickerGetter
获取QStoredBarrier 并返回ExecutableItem 的函数的类型别名,即std::function<ExecutableItem(const QStoredBarrier &)> ,在When 构造函数中使用。
枚举类 QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone
该枚举是onGroupDone() 元素或自定义任务构造函数的可选参数。它指示任务树何时调用组或任务的完成处理程序。
| 常量 | 值 | 说明 |
|---|---|---|
QtTaskTree::CallDoneFlag::Never | 0 | 从不调用已完成处理程序。 |
QtTaskTree::CallDoneFlag::OnSuccess | 1 << 0 | 只有在成功执行后,即DoneWith::Success 时,才调用已完成处理程序。 |
QtTaskTree::CallDoneFlag::OnError | 1 << 1 | 只有在执行失败后,即DoneWith::Error 时,才会调用已完成处理程序。 |
QtTaskTree::CallDoneFlag::OnCancel | 1 << 2 | 仅在取消执行后才调用已完成处理程序,即DoneWith::Cancel 。 |
QtTaskTree::CallDoneFlag::Always | OnSuccess | OnError | OnCancel | 完成处理程序总是被调用。 |
CallDone 类型是QFlags<CallDoneFlag> 的类型定义。它存储 CallDoneFlag 值的 OR 组合。
enum class QtTaskTree::DoneResult
该枚举可选择从组或任务的已完成处理程序函数中返回。当 done 处理程序不返回任何值(即其返回类型为void )时,其最终返回值将由运行中的任务树自动推导并报告给其父组。
当 done 处理程序返回 DoneResult 时,可以在处理程序内部调整最终返回值。
当组的已完成处理程序返回 DoneResult 时,组的工作流策略将被忽略。
任务接口::done() 信号中也使用了这个枚举,它表示任务完成时是成功还是出错。
| 常量 | 值 | 说明 |
|---|---|---|
QtTaskTree::DoneResult::Success | 0 | 组或任务的执行以成功结束。 |
QtTaskTree::DoneResult::Error | 1 | 组或任务的执行以错误结束。 |
enum class QtTaskTree::DoneWith
该枚举是组或任务的完成处理程序的可选参数。它表示组或任务是成功完成、出错还是被取消。
它也用作QTaskTree::done() 信号的参数,表示QTaskTree 执行的最终结果。
| 常量 | 值 | 说明 |
|---|---|---|
QtTaskTree::DoneWith::Success | 0 | 组或任务的执行以成功结束。 |
QtTaskTree::DoneWith::Error | 1 | 组或任务的执行以错误结束。 |
QtTaskTree::DoneWith::Cancel | 2 | 组或任务的执行被取消。当用户为正在运行的任务树调用QTaskTree::cancel() 或当组的工作流策略导致其某些正在运行的子任务被取消时,就会发生这种情况。当组或任务的执行被取消时,不能通过从处理程序返回DoneResult 来调整已完成处理程序的最终结果。 |
[alias] QtTaskTree::GroupItems
[alias] QBarrierTask
QCustomTask<QBarrier> 的别名类型,用于配方内部。
[alias] QNetworkReplyWrapperTask
QCustomTask<QNetworkReplyWrapper> 的别名类型,用于配方内部。
[alias] QProcessTask
为QCustomTask<QProcess> 输入别名,使用QProcessTaskDeleter ,以便在食谱中使用。
[alias] QStoredBarrier
QtTaskTree::Storage<QStartedBarrier> 的别名类型,用于配方内部。
[alias] QTaskTreeTask
QCustomTask<QTaskTree> 的别名类型,用于配方内部。
[alias] QTcpSocketWrapperTask
QCustomTask<QTcpSocketWrapper> 的别名类型,用于配方内部。
[alias] template <typename ResultType> QThreadFunctionTask
QCustomTask<QThreadFunction<ResultType>> 的类型别名,用于配方内部。
[alias] QTimeoutTask
键入QCustomTask<std::chrono::milliseconds> 的别名,在配方中使用。std::chrono::milliseconds 用于设置超时持续时间。默认超时时间为std::chrono::milliseconds::zero() ,也就是说,一旦控件返回到正在运行的事件循环,QTimeoutTask 就会结束。
使用示例:
using namespace std::chrono; using namespace std::chrono_literals; const auto onSetup = [](milliseconds &timeout) { timeout = 1000ms; } const auto onDone = [] { qDebug() << "Timed out."; } const Group root { QTimeoutTask(onSetup, onDone) };
另请参阅 timeoutTask().
enum class QtTaskTree::SetupResult
该枚举可从组或任务的设置处理程序函数中返回。它指示运行中的任务树在设置处理程序执行完毕后如何继续。
| 常量 | 值 | 说明 |
|---|---|---|
QtTaskTree::SetupResult::Continue | 0 | 默认值。组或任务的执行继续正常进行。当组或任务的设置处理程序返回 void 时,假定它返回 Continue。 |
QtTaskTree::SetupResult::StopWithSuccess | 1 | 组或任务执行成功后立即停止。当组的设置处理程序返回时,所有子任务都会被跳过,组的onGroupDone() 处理程序会被调用,调用后的结果是DoneWith::Success 。组会向其父级报告成功。组的工作流程策略将被忽略。从任务的设置处理程序返回时,任务未启动,其已完成处理程序未被调用,任务向其父级报告成功。 |
QtTaskTree::SetupResult::StopWithError | 2 | 组或任务的执行会立即停止,并显示错误。从组的设置处理程序返回时,所有子任务都会被跳过,组的onGroupDone() 处理程序会被调用,调用条件是DoneWith::Error 。组会向其父级报告错误。组的工作流策略将被忽略。从任务的设置处理程序返回时,任务未启动,其错误处理程序未被调用,任务会向其父级报告错误。 |
[alias] QtTaskTree::TreeDoneHandler
std::function<void(constQTaskTree &,QtTaskTree::DoneWith)> 的类型别名。
TreeDoneHandler 是任务树运行程序调度任务树执行的函数的可选参数。当任务树运行程序的配方执行完毕时,该函数将被调用。通过传递的参数可以访问QTaskTree 和配方结果。
任务树运行程序也接受以std::function<void(const QTaskTree &)> 、std::function<void(QtTaskTree::DoneWith)> 或std::function<void(void)> 缩写形式出现的处理程序。
[alias] QtTaskTree::TreeSetupHandler
std::function<void(QTaskTree &)>的类型别名。
TreeSetupHandler 是任务树运行程序调度任务树执行的函数的可选参数。当任务树运行程序即将执行其配方时,该函数将被调用。通过传递的参数可以访问QTaskTree 。
任务树运行程序也接受以std::function<void(void)> 简写形式出现的处理程序。
enum class QtTaskTree::WorkflowPolicy
该枚举描述了当任何组的子任务执行完毕时,组元素可能出现的行为。当正在运行的组被取消时,它也会被使用。
| 常量 | 值 | 描述 |
|---|---|---|
QtTaskTree::WorkflowPolicy::StopOnError | 0 | 默认值。对应stopOnError 全局元素。如果任何子任务以错误结束,则该组停止并以错误结束。如果所有子任务都成功完成,则该组也成功完成。如果组为空,则以成功结束。 |
QtTaskTree::WorkflowPolicy::ContinueOnError | 1 | 对应continueOnError 全局元素。与stopOnError 类似,但如果任何子任务以出错方式结束,则执行将继续,直到所有任务都结束,并且组会在之后报告错误,即使组中的其他任务也以成功方式结束。如果所有子任务都成功完成,则组也成功结束。如果组为空,则该组成功结束。 |
QtTaskTree::WorkflowPolicy::StopOnSuccess | 2 | 对应于stopOnSuccess 全局元素。如果任何子任务成功完成,则组停止并成功结束。如果所有子任务都以错误结束,则该组以错误结束。如果组为空,则以错误结束。 |
QtTaskTree::WorkflowPolicy::ContinueOnSuccess | 3 | 对应continueOnSuccess 全局元素。与stopOnSuccess 类似,但如果有子任务成功完成,则继续执行,直到所有任务都完成,然后组报告成功,即使组中的其他任务以错误方式完成。如果所有子任务都以错误结束,则该组也以错误结束。如果组为空,则以错误结束。 |
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError | 4 | 对应于stopOnSuccessOrError 全局元素。组尽可能多地启动任务。当任何任务完成时,组就会停止并报告任务结果。仅在并行模式下有用。在顺序模式下,只启动第一个任务,任务完成后,组也随之结束,因此其他任务总是被跳过。如果组为空,则结束时会出错。 |
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess | 5 | 对应于finishAllAndSuccess 全局元素。该组会执行所有任务,并忽略其返回结果。当所有任务都完成后,该组以成功结束。如果组为空,则以成功结束。 |
QtTaskTree::WorkflowPolicy::FinishAllAndError | 6 | 对应finishAllAndError 全局元素。组执行所有任务,忽略其返回结果。所有任务完成后,该组以错误结束。如果组为空,则以错误结束。 |
只要子任务的结果导致组停止,即在 StopOnError、StopOnSuccess 或 StopOnSuccessOrError 策略的情况下,组就会取消其他正在运行的子任务(如果有的话--例如在并行模式下),并跳过尚未开始执行的任务(例如在顺序模式下--那些放在失败任务之后的任务)。使用ParallelLimit 时,取消和跳过子任务都可能发生。
下表总结了各种工作流策略之间的区别:
| 工作流策略 | 执行所有子任务 | 结果 | 组为空时的结果 |
|---|---|---|---|
| 错误时停止 | 当任何子任务完成时出错,则停止并报告错误 | 当至少一个子任务失败时报错,否则成功 | 成功 |
| 继续出错 | 是 | 当至少一个子任务失败时报错,否则成功 | 成功 |
| 成功时停止 | 当任何子任务成功完成时停止,并报告成功 | 当至少一个子任务成功时成功,否则错误 | 错误 |
| 继续成功 | 是 | 当至少一个子任务成功时成功,否则错误 | 错误 |
| 停止成功或错误 | 当任何子任务完成时停止,并报告子任务的结果 | 成功或错误,取决于已完成子任务的结果 | 错误 |
| 全部完成并成功 | 是 | 成功 | 成功 |
| 完成全部并出错 | 是 | 错误 | 错误 |
如果组的子组也是组,则子组根据自己的工作流策略运行任务。当父组因为父组的工作流策略而停止正在运行的子组(即父组使用了 StopOnError、StopOnSuccess 或 StopOnSuccessOrError 策略)时,子组的结果将根据结果列和上表中子组的工作流策略行进行报告。
变量文档
const QtTaskTree::GroupItem QtTaskTree::continueOnError
一个方便的全局组元素,用于描述ContinueOnError 工作流程策略。
const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess
一个方便的全局组元素,用于描述ContinueOnSuccess 工作流程策略。
const QtTaskTree::ExecutableItem QtTaskTree::errorItem
一个方便的全局可执行元素,包含一个空的、错误的同步任务。
这在 if 语句中非常有用,可以用来表示分支以错误结束:
const ExecutableItem conditionalTask = ...; Group group { stopOnError, If (conditionalTask) >> Then { ... } >> Else { errorItem }, nextTask };
在上例中,如果conditionalTask 以错误结束,则会选择Else 分支,该分支会立即以错误结束。这将导致nextTask 被跳过(因为group 的工作流策略是stopOnError ),而group 则以错误结束。
另请参阅 successItem 。
const QtTaskTree::GroupItem QtTaskTree::finishAllAndError
一个方便的全局组元素,用于描述FinishAllAndError 工作流程策略。
const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess
一个方便的全局组元素,用于描述FinishAllAndSuccess 工作流程策略。
const QtTaskTree::GroupItem QtTaskTree::nullItem
一个方便的全局组元素,表示一个不可选项。
这在条件表达式中非常有用,可以用来表示没有可选元素:
const ExecutableItem task = ...; const std::optional<ExecutableItem> optionalTask = ...; Group group { task, optionalTask ? *optionalTask : nullItem };
const QtTaskTree::ExecutionMode QtTaskTree::parallel
一个方便的全局组元素,用于描述并行执行模式。
一个组的所有直接子任务都在该组启动后启动,无需等待前一个子任务完成。在这种模式下,所有子任务同时运行。
另请参阅 sequential 和ParallelLimit 。
const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit
一个方便的全局组元素,用于描述并行执行模式下同时运行的任务数量限制。该限制等于除调用线程外的理想线程数。
这是一个快捷方式:
另请参见 parallel 和ParallelLimit 。
const QtTaskTree::ExecutionMode QtTaskTree::sequential
一个方便的全局组元素,用于描述顺序执行模式。
这是组元素的默认执行模式。
当组没有执行模式时,它将以顺序模式运行。组的所有直接子任务都是以链式方式启动的,因此当一个任务完成时,下一个任务就会启动。这样就可以在下一个任务启动前,将上一个任务的结果作为输入传递给下一个任务。这种模式可确保只有在前一个任务完成后才启动下一个任务。
另请参阅 parallel 和ParallelLimit 。
const QtTaskTree::GroupItem QtTaskTree::stopOnError
方便的全局组元素,描述StopOnError 工作流程策略。
这是组元素的默认工作流程策略。
const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess
一个方便的全局组元素,用于描述StopOnSuccess 工作流程策略。
const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError
一个方便的全局组元素,用于描述StopOnSuccessOrError 工作流程策略。
const QtTaskTree::ExecutableItem QtTaskTree::successItem
一个方便的全局可执行元素,包含一个空的、成功的同步任务。
这在 if 语句中非常有用,可以用来表示分支以成功结束:
const ExecutableItem conditionalTask = ...; const Group group { stopOnSuccess, If (conditionalTask) >> Then { ... } >> Else { successItem }, nextTask };
在上例中,如果conditionalTask 以错误结束,则会选择Else 分支,该分支会立即以成功结束。这会导致跳过nextTask (因为group 的工作流策略是stopOnSuccess ),而group 则以成功结束。
另请参阅 errorItem 。
函数文档
QtTaskTree::ExecutableItem QtTaskTree::barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)
返回当传递的storedBarrier 完成时结束的等待者任务。
注意: 传递的storedBarrier 需要与返回任务的同级项目或任何祖先Group 放置在同一个配方中,否则可能会崩溃。
template <typename Signal> QtTaskTree::ObjectSignal<std::decay_t<Signal>> QtTaskTree::makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)
在传递给ExecutableItem::withCancel() 或ExecutableItem::withAccept() 的ObjectSignalGetter 函数内部创建ObjectSignal 的常规函数。传递object 及其signal 可创建ObjectSignal 结构的实例。
另请参见 ObjectSignal 、ExecutableItem::withCancel() 和ExecutableItem::withAccept()。
template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)
构造一个组元素,其中包含组完成处理程序。默认情况下,只要组执行完毕,就会调用handler 。如果希望仅在执行成功、失败或取消时调用处理程序,请为callDone 参数传递一个非默认值。根据组的工作流策略,当运行中的组被取消时(如使用stopOnError 元素时),也可能调用该处理程序。
传递的handler 属于std::function<DoneResult(DoneWith)> 类型。可选择省略每个返回DoneResult 类型或参数DoneWith 类型(即其返回类型可以是void )。有关可能的处理程序类型的更多信息,请参阅GroupItem::GroupDoneHandler 。
调用handler 时,组的所有子任务都已完成。
如果组中包含存储元素,则handler 会在存储被销毁前被调用,这样handler 仍可对活动存储的数据执行最后一次读取。
另请参阅 GroupItem::GroupDoneHandler 和onGroupSetup()。
template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupSetup(Handler &&handler)
构造一个组元素,其中包含组设置处理程序。每当组启动时,就会调用handler 。
传递的handler 是std::function<SetupResult()> 或std::function<void()> 类型。有关可能的处理程序类型的更多信息,请参阅GroupItem::GroupSetupHandler 。
调用handler 时,组的子任务都尚未运行。
如果组中包含存储元素,handler 会在存储构建完成后被调用,这样handler 可能已经对活动存储执行了一些初始修改。
另请参阅 GroupItem::GroupSetupHandler 和onGroupDone()。
template <typename Signal> QtTaskTree::ExecutableItem QtTaskTree::signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)
当传递的sender 发送signal 时,返回结束的等待者任务。
注意: 与被传递的sender 和signal 的连接不是在创建返回任务或将其放入配方时建立的,而是在QTaskTree 启动任务时建立的。确保被传递的sender 在包含返回任务的任何运行任务树中都不会过时。如果signal 是在任务启动前(即连接建立前)发出的,则任务将在任务启动后首次发出signal 时结束。
QtTaskTree::ExecutableItem QtTaskTree::timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)
创建QTimeoutTask ,持续时间为timeout ,之后任务以result 结束。
另请参阅 QTimeoutTask 。
QtTaskTree::GroupItem QtTaskTree::workflowPolicy(QtTaskTree::WorkflowPolicy policy)
为给定的policy 构建组的workflow policy 元素。
为方便起见,可使用全局元素。
另请参见 stopOnError,continueOnError,stopOnSuccess,continueOnSuccess,stopOnSuccessOrError,finishAllAndSuccess,finishAllAndError 和WorkflowPolicy 。
© 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.