当前位置: 首页 > news >正文

(动画)Qt控件 QProgressBar

文章目录

  • QProgressBar
    • 1. 介绍
      • 一、基本特性
      • 二、核心属性
    • 2. 代码实现
    • 3. 动画效果

QProgressBar

1. 介绍

QProgressBar是Qt框架中的一个控件,主要用于显示进度条,以图形化的方式表示任务的完成进度或操作的进度。
QProgressBar

一、基本特性

  • 显示方向:QProgressBar可以在水平或垂直方向上显示进度条。
  • 范围设置:通过设置最小值和最大值来指定进度条的范围。
  • 样式与行为:提供了一些方法和属性,可以方便地设置进度条的值、范围、样式等。

二、核心属性

属性说明
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 :表⽰总时间(以毫秒为单位)

2. 代码实现

  1. 在界⾯上创建进度条, objectName 为 progressBar
    其中最⼩值设为 0, 最⼤值设为 100. 当前值设为 0.
    picture

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

QTimer* timer;
void updateProgressBar ();
  1. 修改 widget.cpp, 初始化 QTimer
    • 此处设置 100ms 触发⼀次 timeout 信号. 也就是⼀秒钟触发 10 次.
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &Widget::updateProgressBar);
timer->start(100);
}
  1. 修改 widget.cpp, 实现 updateProgressBar
void Widget::updateProgressBar() {
int value = ui->progressBar->value();
if (value >= 100) {
timer->stop();
return;
}
ui->progressBar->setValue(value + 1);
}

整体代码
widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimer>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);void updateProgressBar();~Widget();private:QTimer* timer;Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "./ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);timer = new QTimer(this);connect(timer, &QTimer::timeout, this, &Widget::updateProgressBar);timer->start(100);
}Widget::~Widget()
{delete ui;
}void Widget::updateProgressBar() {int value = ui->progressBar->value();if (value >= 100) {timer->stop();return;}ui->progressBar->setValue(value + 1);
}

3. 动画效果

pro

http://www.lryc.cn/news/491479.html

相关文章:

  • 【AI】基础原理
  • 多模态大型语言模型(MLLM)综述
  • 计算机的错误计算(一百六十六)
  • typeof 和 as 关键字
  • Python酷库之旅-第三方库Pandas(237)
  • git提交到远程仓库如何撤回?
  • 微信小程序常用全局配置项及窗口组成部分详解
  • ThingsBoard规则链节点:Azure IoT Hub 节点详解
  • 「Mac玩转仓颉内测版32」基础篇12 - Cangjie中的变量操作与类型管理
  • 【Android】RecyclerView回收复用机制
  • 麒麟系统性能瓶颈分析
  • Java二分查找+冒泡排序
  • (三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】
  • 大数据实战——MapReduce案例实践
  • OpenCV基础(3)
  • 大语言模型---RewardBench 介绍;RewardBench 的主要功能;适用场景
  • 泷羽sec-linux
  • 栈、队列、链表
  • 【maven】配置下载私有仓库的快照版本
  • LabVIEW引用类型转换问题
  • GUI智能代理:用AI代理玩米哈游游戏《崩坏》
  • 系统思考—环路图的好处
  • torch.set_printoptions
  • Nexus搭建go私有仓库,加速下载go依赖包
  • Qt6 Android设置文件读写权限设置
  • TCP快速重传机制为啥出现重复ACK?
  • SSM--SpringMVC复习(二)
  • C语言蓝桥杯组题目
  • 【解决】Unity TMPro字体中文显示错误/不全问题
  • 【Threejs进阶教程-着色器篇】9.顶点着色器入门