在.pro中添加QT += testlib
使用QTest::qSleep需要添加testlib
#include<QProgressDialog>
#include<QTest>
//进度条窗体QProgressDialog
QProgressDialog *progressDialog=new QProgressDialog(this);
progressDialog->setWindowModality(Qt::ApplicationModal);
progressDialog->setRange(0,100);
for(int i=1;i<100+1;i++)
{
QTest::qSleep(50);//单位ms
progressDialog->setValue(i);
//如果点击cancel按钮,结束显示
if(progressDialog->wasCanceled())
return;
}
delete progressDialog;
//进度条窗体QProgressDialog
QProgressDialog *progressDialog=new QProgressDialog();
progressDialog->setFixedSize(480,110);
//隐藏关闭按钮
progressDialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
progressDialog->setWindowModality(Qt::WindowModal);
//隐藏取消按钮
progressDialog->setCancelButton(nullptr);
progressDialog->setRange(0,100);
//设置样式
progressDialog->setStyleSheet("QDialog{"
"background:#888888;}"
"QProgressBar{border:1px solid #FFFFFF;"
"height:20;"
"background:white;"
"text-align:center;"
"color:rgb(0,0,0);"
"border-radius:10px;}"
"QProgressBar::chunk{"
"border-radius:10px;"
"background:#2A94FF;}");
progressDialog->show();
for(int i=1;i<100+1;i++)
{
QTest::qSleep(150);//单位ms
progressDialog->setLabelText("handing file...."+QString::number(i)+"%.");
progressDialog->setValue(i);
}
delete progressDialog;
一个很好的进度样式url:
https://gitee.com/mikema_138/QtCustomProgressbar