• 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.示例,比较进度条

    p1设置如下,正常设置。

    1. ui->progressBar1->setMinimum(0);
    2. ui->progressBar1->setMaximum(100);
    3. ui->progressBar1->setValue(50);
    4. ui->progressBar1->setOrientation(Qt::Horizontal);

    p2设置如下,设置了文字对齐方式,进度条方向等。

    1. ui->progressBar2->setMinimum(0);
    2. ui->progressBar2->setMaximum(100);
    3. ui->progressBar2->setValue(50);
    4. ui->progressBar2->setOrientation(Qt::Horizontal);
    5. ui->progressBar2->setInvertedAppearance(true);//设置反方向
    6. ui->progressBar2->setFormat("%v");
    7. ui->progressBar2->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // 对齐方式

    setFormat(),有如下几种方式

    %p%  

    百分比,这是默认的显示方式
    %v     当前进度
    %m    总步数

    也可以直接设置显示的值,如下图所示,显示小数。

     

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

    p3设置如下,繁忙进度显示。

    只需设置最大值、最小值为0就行了。

    1. ui->progressBar3->setMinimum(0);
    2. ui->progressBar3->setMaximum(0);

    4.设置样式表

    这里简单设置一下样式表。效果如下,仅供参考。

     

    1. QString s1 = "QProgressBar {\
    2. border: 2px solid grey;\
    3. border-radius: 5px;\
    4. text-align: center;\
    5. color:#ff0000;\
    6. }";
    7. QString s2 = "QProgressBar::chunk {\
    8. background-color: #05B8CC;\
    9. width: 20px;\
    10. margin: 0.5px;\
    11. }";

    调用

    ui->progressBar1->setStyleSheet(s1+s2);

  • 相关阅读:
    LVM使用与管理
    【基础篇】六、基于SpringBoot来整合SSM的案例(下)
    贪心算法求解 图的m着色问题
    【编译原理】-- 第二章(二)(短语、简单短语、句柄、文法二义性、语法树、例题)
    Flutter快速入门一:Dart语言
    java毕业设计房屋档案信息管理Mybatis+系统+数据库+调试部署
    如何优雅的使用 GORM 来实现 MySQL 事务
    JavaScript系列之解构赋值
    Heap简介
    深入理解 Java 对象的内存布局
  • 原文地址:https://blog.csdn.net/wzz953200463/article/details/125530997