QProgressDialog的使用案例
时间: 2023-05-22 13:03:14 浏览: 331
ProgressDialog应用实例
QProgressDialog 是 Qt 框架中提供的用于显示进度条对话框的类。使用 QProgressDialog,我们可以轻松地向用户显示长时间操作的进度,并允许用户取消操作。下面是一个使用 QProgressDialog 的示例:
```cpp
// 在主窗口中创建 QProgressDialog 对象
QProgressDialog progressDialog("Loading...", "Cancel", 0, 100, this);
progressDialog.setWindowTitle("Loading Progress");
progressDialog.setAutoClose(false);
progressDialog.setWindowModality(Qt::WindowModal);
progressDialog.setMinimumDuration(0);
// 启动一个新线程执行计算任务
QThread* thread = QThread::create([&]() {
const int MaxNum = 100000;
for (int i = 0; i < MaxNum; i++) {
// 模拟一个耗时的计算任务
if (i % 1000 == 0) {
// 更新进度条的当前值
progressDialog.setValue(i * 100 / MaxNum);
// 如果用户点击了取消按钮,则中断计算任务
if (progressDialog.wasCanceled()) {
return;
}
}
}
// 任务完成后关闭进度条对话框
progressDialog.close();
});
// 启动线程并显示进度条对话框
progressDialog.show();
thread->start();
```
在上面的代码中,我们首先创建了一个 QProgressDialog 对象并指定了显示文本、取消按钮和进度条的范围。然后我们启动一个新线程,在该线程中执行一个耗时的计算任务,并在每次迭代中更新进度条的当前值。如果用户点击了取消按钮,则中断计算任务。当任务执行完毕后,关闭进度条对话框。
需要注意的是,由于 Qt 框架是跨平台的,因此在不同的操作系统上,进度条对话框的外观和行为可能略有不同。但是,使用 QProgressDialog 的基本思路都是一样的。
阅读全文