qt定时器和进度条样式

运行效果
在这里插入图片描述

.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文件
在这里插入图片描述

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值