任务类
类 KDUpdater::TaskTask 类是 KDUpdater 中所有任务的基类。更多...
头文件 | #include <Task> |
继承自 | QObject |
继承的类 |
Public Types
枚举 | Capability { NoCapability, Pausable, Stoppable } |
Public Functions
bool | autoDelete() const |
int | capabilities() const |
int | error() const |
QString | errorString() const |
bool | isFinished() const |
bool | isPaused() const |
bool | isRunning() const |
bool | isStopped() const |
QString | name() const |
int | progressPercent() const |
QString | progressText() const |
void | setAutoDelete(bool autoDelete) |
Public Slots
Signals
void | error(int code, const QString &errorText) |
void | finished() |
void | paused() |
void | progressText(const QString &progressText) |
void | progressValue(int percent) |
void | resumed() |
void | started() |
void | stopped() |
Protected Functions
virtual bool | doPause() = 0 |
virtual bool | doResume() = 0 |
virtual void | doRun() = 0 |
virtual bool | doStop() = 0 |
详细描述
此类是 KDUpdater 中所有任务类的基类。任务是一种占用一定执行时间的活动。任务可以启动、停止(或取消)、暂停和恢复。任务可以报告进度和错误消息,应用程序可以在任何类型的 UI 中显示这些信息。KDUpdater::Task 类为处理 KDUpdater 中的所有类型的任务提供了一个通用接口。
用户应注意以下要点
- 任务类只能启动一次。
- 不能创建此类实例。只能创建子类的实例。
成员类型文档
enum Task::Capability
此枚举值设置任务的功能。
常量 | 值 | 描述 |
---|---|---|
KDUpdater::Task::NoCapability | 0 | 任务没有功能,因此不能暂停或停止。 |
KDUpdater::Task::Pausable | 1 | 任务可以暂停。 |
KDUpdater::Task::Stoppable | 2 | 任务可以被停止。 |
成员函数文档
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)
如果 autoDelete 为 true
,则自动删除任务。
另请参阅autoDelete。
[信号]
void Task::started()
当任务启动时发出此信号。
[槽]
void Task::stop()
如果任务具有 Task::Stoppable 能力,则停止任务。
注意:一旦任务停止,将无法重新启动。
[信号]
void Task::stopped()
当任务停止(或取消)时发出此信号。
©2021Qt公司有限公司的文档贡献归于各自的权利人。此处提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。GNU自由文档许可证版本1.3。Qt公司、Qt及其相应的标志是芬兰及其他国家/地区的商标。所有其他商标归其各自的权利人所有。