2024年4月1日发(作者:)

qfuturewatcher用法

qfuturewatcher用法

• 使用QFutureWatcher来监视一个QFuture对象的进度和完成

状态,以便在需要时执行相应的操作。

创建和启动一个QFuture对象

1. 使用QtConcurrent::run()函数创建一个QFuture对象并将其

赋值给一个QFuture类型的变量。

2. 使用QFuture对象的成员函数start()来启动任务。

例子:

QFuture future = QtConcurrent::run(&MyClass::c

alculate, 42);

创建和使用QFutureWatcher对象

1. 创建一个QFutureWatcher对象,并将QFuture对象传

递给其构造函数。

例子:

QFutureWatcher watcher;

(future);

监视器的信号和槽

1. QFutureWatcher类提供了以下信号和槽:

– finished(): 当QFuture对象执行完成时触发此信号。

– resultReadyAt(int index): 当QFuture对象返回结果

时,可以通过索引访问结果,此信号在每个结果可用时触

发。

– resultsReadyAt(int beginIndex, int endIndex):

当QFuture对象返回结果时,此信号在一批结果可用时触

发。

– resultReadyAt(int index): 当QFuture对象返回结果

时,此信号在所有结果可用时触发。

– progressRangeChanged(int minimum, int maximum):

当进度范围发生变化时触发此信号。

– progressValueChanged(int progress): 当进度值发生

变化时,触发此信号。

例子:

QFutureWatcher watcher;

// Connect signals to slots

connect(&watcher, SIGNAL(finished()), this, SLOT(onFinis

hed()));