运行效果
.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = NULL);
~Widget();
private slots:
void dealtimeout();
private:
Ui::Widget *ui;
QTimer *m_timer;
};
#endif // WIDGET_H
.cpp文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//1、创建定时器对象
m_timer = new QTimer(this);
//2、建立定时器信号和槽,timeout是定时器,到时间会发送的信号;
connect(m_timer,SIGNAL(timeout()),this,SLOT(dealtimeout()));
//3、定时器开始
m_timer->start(100);//毫秒为单位,每100毫秒执行一次dealtimeout
//进度条
ui->progressBar->setRange(0,100); //设置进度条最小值和最大值(取值范围)
ui->progressBar->setMinimum(0); //设置进度条最小值
ui->progressBar->setMaximum(100); //设置进度条最大值
ui->progressBar->setValue(0); //设置当前的当前值
ui->progressBar->setOrientation(Qt::Horizontal); //水平方向
// ui->progressBar->setOrientation(Qt::Vertical); //垂直方向
// ui->progressBar->setAlignment(Qt::AlignVCenter);//对齐方式
ui->progressBar->setAlignment(Qt::AlignCenter);
ui->progressBar->setFormat("loading"); //设置进度条文本
ui->progressBar->setTextVisible(true); //隐藏进度条文本
ui->progressBar->setFixedSize(300,20); //进度条固定大小
// ui->progressBar->setInvertedAppearance(true); //true:反方向 false:正方向
ui->progressBar->setVisible(true); //false:隐藏进度条 true:显示进度条
//通过setStyleSheet样式设计进度条样式
//QProgressBar:进度条背景 设置
//QProgressBar::chunk 进度条 设置
//color:字体颜色 ;border-radius:圆角 ;background: 进度条背景颜色 ;
ui->progressBar->setStyleSheet(
"QProgressBar{color:rgb(0,0,0);border-radius: 10px;"
"background: rgb(245, 245, 245);}"
"QProgressBar::chunk {border-radius: 10px;"
"background: rgb(0, 160, 230);}");
}
Widget::~Widget()
{
delete ui;
}
void Widget::dealtimeout()
{
static int cnt = 0;
cnt++;
if(cnt == 100){
cnt = 0;
// m_timer->stop();//定时器停止
}
ui->progressBar->setFormat(QString::fromLocal8Bit("当前进度为:%1%").arg(cnt));
ui->progressBar->setValue(cnt);
}
.ui文件
版权声明:本文为kchmmd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。