【Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明
Duck Bro 2024-07-11 08:35:01 阅读 70
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍
Qt常用控件 | 显示类控件 | Progress Bar的使用及说明
文章编号:Qt 学习笔记 / 26
文章目录
Qt常用控件 | 显示类控件 | Progress Bar的使用及说明一、QProgressBar介绍1. 简介2. 常用属性及说明
二、QProgressBar样式1. Horizontal2. 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. 设置进度条按时间增长
在界⾯上创建进度条(progressBar),并修改value值为0
修改 widget.h,创建 QTimer 和 handle 槽函数.
<code>public:
Widget(QWidget *parent = nullptr);
~Widget();
void handle();
private:
Ui::Widget *ui;
QTimer * timer;
修改 widget.cpp, 初始化 QTimer
<code>此处设置 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);
}
修改 widget.cpp,编辑handle槽函数
{
int value=ui->progressBar->value();
if(value>=100)
{
timer->stop();
return;
}
ui->progressBar->setValue(value+1);
}
运行程序,查看结果进度条开始增长到100停止
文件代码:
<code>#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 = 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 属性.)
输入以下代码<code>QProgressBar::chunk {background-color: #FF0000;},其中的 chunk 是选中进度条中的每个 “块” . 使⽤ QProgressBar::text 则可以选中⽂本
并将 QProcessBar 的 alignment 属性设置为垂直⽔平居中
执⾏程序,就得到了红色的进度条
上一篇: Python潮流周刊的优惠券和精美电子书(EPUB、PDF、Markdown)
下一篇: 【DataSophon】DataSophon1.2.1 ranger usersync整合
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。