qt 写一个弹窗进度条
时间: 2023-09-12 09:03:53 浏览: 52
可以使用Qt的QProgressDialog来实现弹窗进度条,以下是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QProgressDialog>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个进度对话框
QProgressDialog progressDialog("Loading...", "Cancel", 0, 100);
progressDialog.setWindowTitle("Progress Dialog");
progressDialog.setWindowModality(Qt::WindowModal);
progressDialog.setAutoClose(false);
progressDialog.setAutoReset(false);
// 模拟长时间操作
QTimer timer;
QObject::connect(&timer, &QTimer::timeout, [&progressDialog]() {
static int value = 0;
progressDialog.setValue(value++);
if (value > 100) {
progressDialog.close();
return;
}
});
// 显示进度对话框,并启动计时器
progressDialog.show();
timer.start(50);
return app.exec();
}
```
在上面的代码中,首先创建了一个QProgressDialog对象,并设置了一些属性,如窗口标题、取消按钮文本等。然后通过一个计时器模拟长时间操作,并更新进度对话框的进度值。最后,显示进度对话框并启动计时器。当进度达到100时,关闭进度对话框。
需要注意的是,由于进度对话框是模态对话框,因此需要将其设置为Qt::WindowModal模态。另外,为了防止进度对话框自动关闭或重置进度值,需要将autoClose和autoReset属性设置为false。