QtTaskTree::QTaskInterface Class
class QtTaskTree::QTaskInterfaceQTaskInterface は、カスタムタスクのインターフェースを適応させる際に使用されるヘルパークラスです。詳細...
| ヘッダー: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree) target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| 以下のように: | Qt 6.11 |
| 継承元: | QObject |
| ステータス: | テクノロジープレビュー |
このクラスはテクノロジープレビュー段階にあり、変更される可能性があります。
注:このクラスのすべての関数は再入可能です。
パブリック関数
| void | reportDone(QtTaskTree::DoneResult result) |
シグナル
| void | done(QtTaskTree::DoneResult result) |
再実装された保護関数
| virtual bool | event(QEvent *event) override |
詳細な説明
QCustomTask<Task 、Adapter 、Deleter> テンプレートのカスタムAdapter 型は、Workerタスクを適応させる場合、以下の形式になることが想定されます。
class WorkerTaskAdapter
{
public:
void operator()(Worker *task, QTaskInterface *iface) { ... }
};
using WorkerTask = QCustomTask<Worker, WorkerTaskAdapter>;メンバ関数のドキュメント
[private signal] void QTaskInterface::done(QtTaskTree::DoneResult result)
このシグナルは、タスク実行のresult を引数としてreportDone()が呼び出された際に発せられます。
注:これは プライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発火させることはできません。
reportDone()も参照してください 。
[override virtual protected] bool QTaskInterface::event(QEvent *event)
QObject::event(QEvent *e) を再実装します。
void QTaskInterface::reportDone(QtTaskTree::DoneResult result)
このメソッドは、カスタムアダプタを介して適応されたタスクが完了した際に、タスク実行のresult を引数として渡して呼び出す必要があります。
Workerがfinished(bool)シグナルを発行すると仮定すると、アダプタのコードは次のようになります。
class WorkerTaskAdapter
{
public:
void operator()(Worker *task, QTaskInterface *iface) {
connect(task, &Worker::finished, iface, [iface](bool success) {
iface->reportDone(toDoneResult(success));
});
task->execute();
}
};
using WorkerTask = QCustomTask<Worker, WorkerTaskAdapter>;QCustomTaskも参照してください 。
© 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.