任务类

KDUpdater::Task

Task 类是 KDUpdater 中所有任务的基类。更多...

头文件 #include <Task>
继承自 QObject
继承的类

KDUpdater::UpdateFinder

Public Types

枚举Capability { NoCapability, Pausable, Stoppable }

Public Functions

boolautoDelete() const
intcapabilities() const
interror() const
QStringerrorString() const
boolisFinished() const
boolisPaused() const
boolisRunning() const
boolisStopped() const
QStringname() const
intprogressPercent() const
QStringprogressText() const
voidsetAutoDelete(bool autoDelete)

Public Slots

voidpause()
voidresume()
voidrun()
voidstop()

Signals

voiderror(int code, const QString &errorText)
voidfinished()
voidpaused()
voidprogressText(const QString &progressText)
voidprogressValue(int percent)
voidresumed()
voidstarted()
voidstopped()

Protected Functions

virtual booldoPause() = 0
virtual booldoResume() = 0
virtual voiddoRun() = 0
virtual booldoStop() = 0

详细描述

此类是 KDUpdater 中所有任务类的基类。任务是一种占用一定执行时间的活动。任务可以启动、停止(或取消)、暂停和恢复。任务可以报告进度和错误消息,应用程序可以在任何类型的 UI 中显示这些信息。KDUpdater::Task 类为处理 KDUpdater 中的所有类型的任务提供了一个通用接口。

用户应注意以下要点

  • 任务类只能启动一次。
  • 不能创建此类实例。只能创建子类的实例。

成员类型文档

enum Task::Capability

此枚举值设置任务的功能。

常量描述
KDUpdater::Task::NoCapability0任务没有功能,因此不能暂停或停止。
KDUpdater::Task::Pausable1任务可以暂停。
KDUpdater::Task::Stoppable2任务可以被停止。

成员函数文档

bool Task::autoDelete() const

如果任务将被自动删除,则返回 true

另请参阅setAutoDelete()。

int Task::capabilities() const

返回任务的特性。它是由一个或多个 Task::Capability 标志组合而成的。

[纯虚保护] bool Task::doPause()

如果任务被暂停,则返回 true

[纯虚保护] bool Task::doResume()

如果任务被恢复,则返回 true

[纯虚保护] void Task::doRun()

如果任务正在运行,则返回 0

[纯虚保护] bool Task::doStop()

如果任务被停止,则返回 true

int Task::error() const

返回最后报告的错误代码。

[信号] void Task::error(int code, const QString &errorText)

当此类任务在执行过程中出现错误时,发出此信号。

code 参数指示在任务执行过程中找到的错误,而 errorText 是最后发生的最后一个错误的可读描述。

注意:此类的信号 error 是重载的。要使用函数指针语法连接到此信号,Qt 提供了一个方便的辅助函数,如示例所示。

connect(task, QOverload<int, const QString &>::of(&Task::error),
    [=](int code, const QString &errorText){ /* ... */ });

QString Task::errorString() const

返回最后报告的错误消息文本。

[信号] void Task::finished()

当任务完成时,发出此信号。

bool Task::isFinished() const

返回任务是否已完成。

注意:停止(或取消)的任务不是已完成任务。

bool Task::isPaused() const

返回任务是否被暂停。

bool Task::isRunning() const

返回任务是否已开始并正在运行。

bool Task::isStopped() const

返回任务是否被停止。

注意:已完成任务不是停止类。

QString Task::name() const

返回任务名称。

[槽函数] void Task::pause()

暂停任务,前提是任务具有 Task::Pausable 能力。

[信号] void Task::paused()

当任务暂停时发出此信号。

int Task::progressPercent() const

返回此任务完成的百分比。

QString Task::progressText() const

返回描述此任务完成进度的字符串。

[信号] void Task::progressText(const QString &progressText)

发出此信号以报告任务的进度。参数 progressText 表示人类可读的进度形式。

注意:信号 progressText 在此类中重载。要使用函数指针语法连接到此信号,Qt提供了一种方便的助手,如下例所示

connect(task, QOverload<const QString &>::of(&Task::progressText),
    [=](const QString &progressText){ /* ... */ });

[信号] void Task::progressValue(int percent)

发出此信号以报告任务的进度。参数 percent 表示以百分比完成的进度。

[槽] void Task::resume()

如果任务已被暂停,则恢复任务。

[信号] void Task::resumed()

当任务恢复时发出此信号。

[槽] void Task::run()

开始任务。

void Task::setAutoDelete(bool autoDelete)

如果 autoDeletetrue,则自动删除任务。

另请参阅autoDelete

[信号] void Task::started()

当任务启动时发出此信号。

[槽] void Task::stop()

如果任务具有 Task::Stoppable 能力,则停止任务。

注意:一旦任务停止,将无法重新启动。

[信号] void Task::stopped()

当任务停止(或取消)时发出此信号。

©2021Qt公司有限公司的文档贡献归于各自的权利人。此处提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。GNU自由文档许可证版本1.3。Qt公司、Qt及其相应的标志是芬兰及其他国家/地区的商标。所有其他商标归其各自的权利人所有。