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

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

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

一、QProgressBar介绍

1. 简介

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


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


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

2. 常用属性及说明

image.png

二、QProgressBar样式

1. Horizontal

2. Vertical

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

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

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


2.修改 widget.h,创建 QTimer 和 handle 槽函数.

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void handle();
private:
    Ui::Widget *ui;
    QTimer * timer;

3.修改 widget.cpp, 初始化 QTimer

此处设置 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槽函数

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

文件代码:

#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 通过样式来修改进度条的颜⾊

  1. 创建一个进度条

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

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


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

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

目录
相关文章
|
2月前
Qt类结构分析
Qt类结构分析
52 3
|
1月前
|
设计模式 前端开发 安全
Qt注册类对象单例与单类型区别
在进行开发时,应当根据具体的应用场景和需求来选择使用单例模式或是单类型。如果是全局服务或状态管理,可能需要单例模式;如果是为了使QML环境下的不同组件能够访问到同一个后端服务对象,则可能需要使用单类型。
25 2
|
2月前
|
前端开发 程序员 API
【Qt】控件介绍
【Qt】控件介绍
|
2月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
154 4
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
430 4
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
133 3
|
2月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
54 3
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
314 3
|
2月前
|
网络协议 Linux C++
【Qt】多种控件实现“hello world“
【Qt】多种控件实现“hello world“
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
157 1
Qt(C++)开发一款图片防盗用水印制作小工具