Qt常用控件之进度条QProgressBar
进度条QProgressBar
QProgressBar
是一种用来显示进度条的控件。
1. QProgressBar属性
属性 | 说明 |
---|---|
minimum | 进度条最小值。 |
maximum | 进度条最大值。 |
value | 进度条当前值。 |
alignmen | 文本在进度条中的对齐方式。 Qt::AlignLeft 为左对齐;Qt::AlignRight 为右对齐;Qt::AlignCenter 为居中对齐;Qt::AlignJustify 为两端对齐。 |
testVisible | 进度条数字是否可见。 |
orientation | 进度条方向是水平还是垂直。 |
invertAppearan | 是否是反向增长进度条(不常用)。 |
textDirection | 文本的朝向。 |
format | 展示数字的格式。%p 表示进度的百分比(0% - 100%);%v 表示进度的数值(0 - 100);%m 表示剩余时间(以毫秒表示单位);%t 表示总时间(以毫秒表示单位) |
2. 使用QProgressBar制作倒计时进度条
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
QTimer* timer;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
timer = new QTimer(this);
connect(timer,&QTimer::timeout,this,&Widget::updateProgressBar);
ui->progressBar->setValue(0);
timer->start(100);
}
Widget::~Widget()
{
delete ui;
}
void Widget::updateProgressBar()
{
int value=ui->progressBar->value();
if(value>=100)
{
timer->stop();
}
ui->progressBar->setValue(value+1);
}
如果不喜欢绿色可用使用 setSheetStyle()
或者在 ui 界面直接修改 sheetStyle
更改样式。
QProgressBar::chunk{background-color:blue;}
chunk 表示进度条中的每个 “块” ,如果要对文本进行修改要使用
QProgressBar::text{}
。
效果:
注意这里进度条数字会移位,可能是 Qt 的 Bug。