【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

2024-07-11 1258阅读

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

    Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

    文章编号:Qt 学习笔记 / 26

    文章目录

    • Qt常用控件 | 显示类控件 | Progress Bar的使用及说明
      • 一、QProgressBar介绍
        • 1. 简介
        • 2. 常用属性及说明
        • 二、QProgressBar样式
          • 1. Horizontal
          • 2. Vertical
          • 二、QProgressBar的使用(代码示例)
            • 1. 设置进度条按时间增长
            • 2. 设置红色的进度条

              一、QProgressBar介绍

              1. 简介

              QProgressBar是一个Qt框架中的控件,用于显示进度条。 它可以用于表示任务的完成进度或操作的进度。

              QProgressBar可以在水平或垂直方向上显示进度条。 它可以通过设置最小值和最大值来指定进度条的范围。

              QProgressBar提供了一些方法和属性,可以方便地设置进度条的值、范围、样式等。可以通过在Qt Designer中使用QProgressBar,或者在代码中创建QProgressBar对象,然后使用各种方法和属性来设置进度条的样式和行为。

              【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              2. 常用属性及说明

              属性说明
              minimum进度条最⼩值
              maximum进度条最⼤值
              value进度条当前值
              alignment⽂本在进度条中的对⻬⽅式.

              • Qt::AlignLeft : 左对⻬
              • Qt::AlignRight : 右对⻬
              • Qt::AlignCenter : 居中对⻬
              • Qt::AlignJustify : 两端对⻬

              textVisible进度条的数字是否可⻅.
              orientation进度条的⽅向是⽔平还是垂直
              invertAppearance是否是朝反⽅向增⻓进度
              textDirection⽂本的朝向.
              format展⽰的数字格式.
              • %p :表⽰进度的百分⽐(0-100)
              • %v :表⽰进度的数值(0-100)
              • %m :表⽰剩余时间(以毫秒为单位)
              • %t :表⽰总时间(以毫秒为单位)

              二、QProgressBar样式

              1. Horizontal

              【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              2. Vertical

              【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明


              二、QProgressBar的使用(代码示例)

              1. 设置进度条按时间增长

              1. 在界⾯上创建进度条(progressBar),并修改value值为0

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              2. 修改 widget.h,创建 QTimer 和 handle 槽函数.
              public:
                  Widget(QWidget *parent = nullptr);
                  ~Widget();
                  void handle();
              private:
                  Ui::Widget *ui;
                  QTimer * timer;
              
              1. 修改 widget.cpp, 初始化 QTimer

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              此处设置 100ms 触发⼀次 timeout 信号. 也就是⼀秒钟触发 10 次
              
              Widget::Widget(QWidget *parent)
                  : QWidget(parent)
                  , ui(new Ui::Widget)
              {
                  ui->setupUi(this);
                  ui->progressBar->setValue(0);
                  timer=new QTimer(this);
                  connect(timer,&QTimer::timeout,this,&Widget::handle);
                  timer->start(100);
              }
              
              1. 修改 widget.cpp,编辑handle槽函数

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              void Widget::handle()
              {
                 int value=ui->progressBar->value();
                  if(value>=100)
                  {
                      timer->stop();
                      return;
                  }
                  ui->progressBar->setValue(value+1);
              }
              
              1. 运行程序,查看结果进度条开始增长到100停止

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              文件代码:

              #ifndef WIDGET_H
              #define WIDGET_H
              #include 
              #include 
              QT_BEGIN_NAMESPACE
              namespace Ui { class Widget; }
              QT_END_NAMESPACE
              class Widget : public QWidget
              {
                  Q_OBJECT
              public:
                  Widget(QWidget *parent = nullptr);
                  ~Widget();
                  void handle();
              private:
                  Ui::Widget *ui;
                  QTimer * timer;
              };
              #endif // WIDGET_H
              
              #include "widget.h"
              #include "ui_widget.h"
              Widget::Widget(QWidget *parent)
                  : QWidget(parent)
                  , ui(new Ui::Widget)
              {
                  ui->setupUi(this);
                  ui->progressBar->setValue(0);
                  timer=new QTimer(this);
                  connect(timer,&QTimer::timeout,this,&Widget::handle);
                  timer->start(100);
              }
              Widget::~Widget()
              {
                  delete ui;
              }
              void Widget::handle()
              {
                 int value=ui->progressBar->value();
                  if(value>=100)
                  {
                      timer->stop();
                      return;
                  }
                  ui->progressBar->setValue(value+1);
              }
              

              2. 设置红色的进度条

              在Qt中,可以使⽤ styleSheet 通过样式来修改进度条的颜⾊

              1. 创建一个进度条

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              2. 右键点击进度条,选择改变样式表(或者在 Qt Designer 右侧的属性编辑器中, 找到 QWidget 的 styleSheet 属性.)

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              3. 输入以下代码QProgressBar::chunk {background-color: #FF0000;},其中的 chunk 是选中进度条中的每个 “块” . 使⽤ QProgressBar::text 则可以选中⽂本

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              4. 并将 QProcessBar 的 alignment 属性设置为垂直⽔平居中

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

              5. 执⾏程序,就得到了红色的进度条

                【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明


              【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]