1.QProgressDialog
//进度条
QProgressDialog *t_progressBar= new QProgressDialog(this);
t_progressBar->setWindowTitle(QString::fromLocal8Bit("解析中.."));
t_progressBar->setMinimumDuration(5);//如果运行时间太短,可以加上这个
t_progressBar->setModal(true);//必须加上这个,不设置模型是不会显示的
t_progressBar->setRange(0,t_checkeFileName.size());
t_progressBar->show();
2.QProgressBar样式
void CTaskProgressShow::initProgressBarStyle(QProgressBar* progressBar, int finshed, int count)
{
progressBar->setMinimum(0);
progressBar->setMaximum(count);
//设置格式
progressBar->setFormat("%v/%m");
progressBar->setValue(finshed);
progressBar->setAlignment(Qt::AlignHCenter);
if ( finshed%count == 0 )
{
QString s = "QProgressBar {border: 2px solid grey;border-radius: 5px;text-align: center;color:#000000;}QProgressBar::chunk {background-color: #00aa00;}";
progressBar->setStyleSheet(s);
}
else
{
QString s = "QProgressBar {border: 2px solid grey;border-radius: 5px;text-align: center;color:#000000;}QProgressBar::chunk {background-color: #ffaa7f;}";
progressBar->setStyleSheet(s);
}
}
QProgressBar的样式
可见有两部分
QString s1 = "QProgressBar {\
border: 2px solid grey;\
border-radius: 5px;\
text-align: center;\
color:#ff0000;\
}";
QString s2 = "QProgressBar::chunk {\
background-color: #05B8CC;\
width: 20px;\
margin: 0.5px;\
}";
ui->progressBar1->setStyleSheet(s1+s2);