【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. 设置进度条按时间增长

  1. 在界⾯上创建进度条(progressBar),并修改value值为0
    在这里插入图片描述
  2. 修改 widget.h,创建 QTimer 和 handle 槽函数.
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void handle();
private:
    Ui::Widget *ui;
    QTimer * timer;
  1. 修改 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);
}
  1. 修改 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. 执⾏程序,就得到了红色的进度条
    在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/555994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【创建型模式】抽象工厂模式

一、抽象工厂模式概述 抽象工厂模式定义&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 模式动机&#xff1a; 1.当系统提供的工厂生产的具体产品并不是一个简单的对象&#xff0c;而是多个位于不同产品等级结构、属于不同类型的…

Simba:Mamba 增强了 U-ShiftGCN,用于视频中的骨骼动作识别

Simba&#xff1a;Mamba 增强了 U-ShiftGCN&#xff0c;用于视频中的骨骼动作识别 摘要IntroductionRelated WorksMethodologyDown-sampling ShiftGCN Encoder Experiments & ResultsDatasets Simba: Mamba augmented U-ShiftGCN for Skeletal Action Recognition in Video…

通过vue完成表格数据的渲染展示和vue的生命周期及小结

案例 通过vue完成表格数据的渲染展示 把视图区展示的数据 死数据替换掉 从vue的数据模型中读取 展示在视图区 vue中的数据 模型是js中的自定义类型 形成的数组 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解

NL2SQL进阶系列(1)&#xff1a;DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解 NL2SQL基础系列(1)&#xff1a;业界顶尖排行榜、权威测评数据集及LLM大模型&#xff08;Spider vs BIRD&#xff09;全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2)&#xff1a;主流…

2024华中杯C题平面曲线重建思路

华中杯数学建模思路 光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技 术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号&#xff0c;其基本原理是当外界环境参数发生变化时&#xff0c;会引起光纤传感器中光波参量&#xff08;如波长、相位、…

IP-guard WebServer 权限绕过漏洞复现(QVD-2024-14103)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

全球排名前十的搜索引擎,你猜百度排名在第几位?bing稳居二位!

通常情况下&#xff0c;营销人员在争夺其在线业务的流量时会非常关注Google&#xff0c;无论是通过他们的网站&#xff0c;博客文章还是其他形式的内容。考虑到谷歌无疑是最受欢迎的搜索引擎&#xff0c;拥有超过85%的搜索市场份额&#xff0c;这是有道理的。 但这种受欢迎程度…

【Qt】Qt Hello World 程序

文章目录 1、Qt Hello World 程序1.1 使用按钮实现1.1.1 使用可视化方式实现 1.1.2 纯代码方式实现 label创建堆&#xff08;内存泄漏&#xff09;或者栈问题Qt基础类&#xff08;Qstring、Qvector、Qlist&#xff09;乱码问题零散知识 1、Qt Hello World 程序 1.1 使用按钮实…

【代码随想录】【动态规划】day48:打家劫舍

打家劫舍1 def rob(self, nums):""":type nums: List[int]:rtype: int"""# 分为两个情况&#xff0c;偷还是不偷&#xff0c;# dp[i]为考虑到第i个房间时的最大值if len(nums) 0: # 如果没有房屋&#xff0c;返回0return 0if len(nums) 1: #…

QoS流量整形

流量整形是一种带宽技术形式&#xff0c;它延迟某些类型的网络数据包的流动&#xff0c;以确保更高优先级应用程序的网络性能&#xff0c;它主要涉及调整数据传输速率&#xff0c;以确保网络资源以最佳容量得到利用。流量整形的目的是防止网络拥塞并提高网络的整体性能&#xf…

穿越物联网的迷雾:深入理解MQTT协议

目录标题 1、MQTT简介核心特性 2、MQTT的工作原理通信过程 3、MQTT的消息质量&#xff08;QoS&#xff09;4、安全机制5、实践应用环境准备示例项目发布者客户端订阅者客户端 6、最佳实践7、结论8、参考资料 在物联网&#xff08;IoT&#xff09;的海洋中&#xff0c;数据像水流…

【深度学习】Attention、Self-Attention、Multi-Head Attention

一、Attention 在CV领域&#xff0c;注意力机制通常分为通道注意力和空间注意力或者两者结合。 一张图像经backbone得到的特征通常包括多个通道&#xff0c;每个通道是一个像素矩阵&#xff0c;每个通道对任务的贡献不尽相同&#xff0c;单个通道的特征图中每个像素对任务的贡…

Ansible在macOS上的安装部署

一、安装 Ansible&#xff08;使用 Homebrew&#xff09; 安装 Homebrew&#xff08;如果尚未安装&#xff09;&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"使用 Homebrew 安装 Ansible&#x…

Hive进阶(1)----HDFS写入数据流程(赋图助君理解)

HDFS写入数据流程 1.理论流程描述 HDFS&#xff08;Hadoop分布式文件系统&#xff09;的数据写入流程是一个复杂但高效的过程&#xff0c;可以分为以下8个步骤&#xff1a; 1、client(客户端)发起文件上传请求&#xff1b; 2、通过发送RPC请求与NameNode建立通讯。NameNode…

从100美元到1亿美元,探究传奇交易员GCR的交易心得及其持仓

有史以来最“伟大”的交易员GCR终于回归。2022年&#xff0c;GCR的资金从100美元涨至1亿美元&#xff0c;通过做空LUNA成为有史以来最赚钱的交易员。 GCR又名Giant Cassock Revival&#xff0c;或许是从FTX和Luna崩盘事件中获利最多的人&#xff0c;其净资产达到1亿美元后便“…

lv_micropython for ESP32/S2/S3/C3

由于官方的lv_micropython编译ESP32S3/S2/C3会报错&#xff0c;因为这些芯片的esp-idf底层重写了接口&#xff0c;参照网友提供的方法修改lv_bindings/driver/esp32里的文件&#xff0c;解决编译错误。 问题列举&#xff1a;Issues lvgl/lv_binding_micropython GitHub 一…

视觉信息保真度VIF算法详细介绍

来源 算法核心思想来源该篇论文A VISUAL INFORMATION FIDELITY APPROACH TO VIDEO QUALITY ASSESSMENT;是2005年的一篇高引用文章; 是一种全参考的视频图像评价算法;在奈飞开源的视频质量评价工具vmaf中将其作为一个判断维度,具体关于vmaf介绍可以参考视频质量评价工具vmaf…

安全开发实战(2)---域名反查IP

目录 安全开发专栏 前言 域名与ip的关系 域名反查ip的作用 1.2.1 One 1.2.2 Two 1.2.3 批量监测 ​总结 安全开发专栏 安全开发实战http://t.csdnimg.cn/25N7H 这步是比较关键的一步,一般进行cdn监测后,获取到真实ip地址后,或是域名时,然后进行域名反查IP地址,进行进…

机器学习笔记 - 使用 OpenCV 的结构化森林进行边缘检测

一、简述 边缘检测是计算机视觉领域中一项非常重要的任务。这是许多纯计算机视觉任务(例如轮廓检测)的第一步。即使涉及深度学习,较深层也首先学习识别边缘,然后再学习图像的复杂特征。所以,我们可以说边缘检测在计算机视觉领域非常重要。拥有良好且高效的图像边缘检测算法…

微信小程序实现美食检索功能

1、打开浏览器搜索&#xff1a;腾讯位置服务 2、注册一个账号&#xff0c;有账号的直接登陆就行 3、注册登陆成功后&#xff0c;点击控制台 4、进入控制台后点击我的应用——>创建应用 5、添加key,注意看注释 6、key添加成功后&#xff0c;开始分配额度&#xff08;配额&…