Auf dieser Seite

QtTaskTree::QTaskInterface Class

class QtTaskTree::QTaskInterface

QTaskInterface ist eine Hilfsklasse, die bei der Anpassung der Schnittstelle von benutzerdefinierten Aufgaben verwendet wird. Mehr...

Kopfzeile: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Seit: Qt 6.11
Vererbt: QObject

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Funktionen

void reportDone(QtTaskTree::DoneResult result)

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *event) override

Detaillierte Beschreibung

Der benutzerdefinierte Typ Adapter der Vorlage QCustomTask<Task, Adapter, Deleter> sollte bei der Anpassung von Worker task die folgende Form haben:

class WorkerTaskAdapter
{
public:
    void operator()(Worker *task, QTaskInterface *iface) { ... }
};

using WorkerTask = QCustomTask<Worker, WorkerTaskAdapter>;

Member Function Documentation

[override virtual protected] bool QTaskInterface::event(QEvent *event)

Reimplements: QObject::event(QEvent *e).

void QTaskInterface::reportDone(QtTaskTree::DoneResult result)

Diese Methode sollte aufgerufen werden, wenn die Aufgabe, die über den benutzerdefinierten Adapter angepasst wurde, beendet ist, wobei die result der Aufgabenausführung übergeben wird.

Angenommen der Worker gibt ein finished(bool) Signal aus, kann der Adapter wie folgt aussehen:

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>;

Siehe auch 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.