Qt入门|Qt QProgressBar详解

1.QProgressBar简述
QProgressBar提供了一个水平或垂直的进度条,可以使用setMinimum()和setMaximum指定最小和最大步数。当前的步数是用setValue()设置的。进度条可以用reset()重绕到开头。
2.常用方法

void setMaximum(int maximum) 设置最大值
void setMinimum(int minimum) 设置最小值
void setRange(int minimum, int maximum) 设置范围,最大、最小值
void setValue(int value) 设置当前值
void reset() 重置
void setOrientation(Qt::Orientation) 设置方向,垂直,水平
void setAlignment(Qt::Alignment alignment) 设置对齐方式,居中,左、右
void setTextVisible(bool visible) 设置进度条文本是否显示
void setInvertedAppearance(bool invert) 设置正、反
void setFormat(const QString &format) 设置文本显示格式
3.示例,比较进度条
Qt入门|Qt QProgressBar详解
文章图片

p1设置如下,正常设置。
ui->progressBar1->setMinimum(0); ui->progressBar1->setMaximum(100); ui->progressBar1->setValue(50); ui->progressBar1->setOrientation(Qt::Horizontal);

p2设置如下,设置了文字对齐方式,进度条方向等。
ui->progressBar2->setMinimum(0); ui->progressBar2->setMaximum(100); ui->progressBar2->setValue(50); ui->progressBar2->setOrientation(Qt::Horizontal); ui->progressBar2->setInvertedAppearance(true); //设置反方向 ui->progressBar2->setFormat("%v"); ui->progressBar2->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // 对齐方式

setFormat(),有如下几种方式
%p%
百分比,这是默认的显示方式
%v 当前进度
%m 总步数
也可以直接设置显示的值,如下图所示,显示小数。
Qt入门|Qt QProgressBar详解
文章图片


ui->progressBar1->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // 对齐方式ui->progressBar1->setFormat(QString("cur progress value:%1%").arg(QString::number(50.43, 'f', 2)));

p3设置如下,繁忙进度显示。
只需设置最大值、最小值为0就行了。
ui->progressBar3->setMinimum(0); ui->progressBar3->setMaximum(0);

4.设置样式表
【Qt入门|Qt QProgressBar详解】这里简单设置一下样式表。效果如下,仅供参考。
Qt入门|Qt 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);


    推荐阅读