【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明
- 博客主页: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对象,然后使用各种方法和属性来设置进度条的样式和行为。
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
2. Vertical
二、QProgressBar的使用(代码示例)
1. 设置进度条按时间增长
public: Widget(QWidget *parent = nullptr); ~Widget(); void handle(); private: Ui::Widget *ui; QTimer * timer;此处设置 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); }void Widget::handle() { int value=ui->progressBar->value(); if(value>=100) { timer->stop(); return; } ui->progressBar->setValue(value+1); }文件代码:
#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 通过样式来修改进度条的颜⾊
-
创建一个进度条
-
右键点击进度条,选择改变样式表(或者在 Qt Designer 右侧的属性编辑器中, 找到 QWidget 的 styleSheet 属性.)
-
输入以下代码QProgressBar::chunk {background-color: #FF0000;},其中的 chunk 是选中进度条中的每个 “块” . 使⽤ QProgressBar::text 则可以选中⽂本
-
并将 QProcessBar 的 alignment 属性设置为垂直⽔平居中
-
执⾏程序,就得到了红色的进度条
-
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!













