首页 > 其他分享 >16. 进度条控件

16. 进度条控件

时间:2025-01-04 21:58:59浏览次数:1  
标签:控件 None Qt 16 self 进度条 progressBar 设置

一、进度条控件

  进度条控件控件主要显示任务的执行进度,PySide6 中提供了进度条控件(QProgressBar)。进度条控件通常在执行长时间任务时,用进度条告诉用户当前的进展情况。

  我们可以在终端中使用 pip 安装 pyside6 模块。

pip install pyside6

  用 QProgressBar 类创建实例对象的方法如下:

QProgressBar(parent:QWidget=None)

  其中,parent窗口 或者 容器 类控件。

  QProgressBar 类的常用方法及其说明如下:

# 实例方法
minimum() -> int                                            # 获取最小值
maximum() -> int                                            # 获取最大值
value() -> int                                              # 获取值
text() -> str                                               # 获取文本
orientation() -> Qt.Orientation                             # 获取方向
setAlignment(alignment:Qt.Alignment) -> None                # 设置对齐方式
alignment() -> Qt.Alignment                                 # 获取对齐方式
setFormat(format:str) -> None                               # 设置文本的格式
format() -> str                                             # 获取文本的格式
resetFormat() -> None                                       # 重置文本的格式
setInvertedAppearance(invert:bool) -> None                  # 设置外观是否反转
invertedAppearance() -> bool                                # 获取外观是否反转
setTextDirection(textDirection:Qt.TextDirection) -> None    # 设置进度条文本方向
textDirection() -> Qt.TextDirection                         # 获取进度条文本方向
setTextVisible(visible:bool) -> None                        # 设置进度条文本是否可见
isTextVisible() -> bool                                     # 获取进度条文本是否可见

# 槽函数
setMinimum(minimum:int) -> None                             # 设置最小值
setMaximum(maximum:int) -> None                             # 设置最大值
setRange(minimum:int, maximum:int) -> None                  # 设置范围
setValue(value:int) -> None                                 # 设置值
setOrientation(orientation:Qt.Orientation) -> None          # 设置方向
reset() -> None                                             # 重置进度条,返回初始位置

  用 setOrientation(Qt.Orientation) 方法可以设置进度条的方向,参数 Qt.Orientation 可以取 Qt.Orientation.HorizontalQt.Orientation.Vertical ;用 setTextDirection(QProgressBar.Direction) 方法设置进度条上文本的方向,参数 QProgressBar.Direction 可以取 QProgressBar.Direction.TopToBottomQProgressBar.Direction.BottomToTop,分别表示文本顺时针旋转 90° 和逆时针旋转 90°。设置文本在进度条上的对齐方式可以用 setAlignment(Qt.Alignment) 方法,如果 Qt.AlignmentQt.Alignment.AlignHCenter,文本将会放置到进度条的中间。

  用 setFormat(str) 方法设置显示的文字格式,在文字中 %p% 表示 百分比值%v 表示 当前值%m 表示 总数,默认显示的是 %p%;获取文本格式用 format() 方法;获取格式化的文本用 text() 方法。

  QProgressBar 控件中常用的信号及其说明如下:

valueChanged(value)        # 进度条的值发生改变时发射
import sys

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QProgressBar
from PySide6.QtCore import QTimer, Qt

class MyWidget(QWidget):
    def __init__(self):
        # 1.调用父类Qwidget类的__init__()方法
        super().__init__()
        # 2.调用setupUi()方法初始化页面
        self.setup_ui()

        self.count = 0
        # 3.创建一个定时器对象
        self.timer = QTimer()
        # 4.启动定时器
        self.timer.start(1000)
        # 5.关联信号
        self.timer.timeout.connect(self.change_progressBar)

    def setup_ui(self):
        # 1.设置窗口对象大小
        self.resize(700, 500)

        # 2.创建进度条控件
        self.progressBar = QProgressBar(self)
        self.progressBar.resize(500, 30)

        # 3.设置进度条范围
        self.progressBar.setRange(0, 100)

        # 4.设置进度条的当前值
        self.progressBar.setValue(0)

        # 5.设置进度条的文字显示格式
        self.progressBar.setFormat("%v%")

        # 6.设置对齐方式
        self.progressBar.setAlignment(Qt.AlignmentFlag.AlignLeft)

        # 7.设置进度条的布局方向
        self.progressBar.setLayoutDirection(Qt.LayoutDirection.LeftToRight)

        # 8.设置进度条的显示方向
        self.progressBar.setOrientation(Qt.Orientation.Horizontal)

        # 9.设置进度条是否以反方向显示进度
        self.progressBar.setInvertedAppearance(False)

        # 10.设置进度条文本显示方向
        self.progressBar.setTextDirection(QProgressBar.Direction.TopToBottom)

        # 11.获取进度条的最小值,最大值,当前值
        print(self.progressBar.minimum(), self.progressBar.maximum(), self.progressBar.value())

        # 12.定义信号与槽的连接
        self.progressBar.valueChanged.connect(self.valueChanged)

    def change_progressBar(self):
        self.count += 1
        if self.count <= 100:
            self.progressBar.setValue(self.count)
        else:
            self.count = 0
            self.progressBar.reset()

    def valueChanged(self, value):
        print("进度条的值改变了,当前值为:", value)

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)
    # 2.创建一个窗口
    window = MyWidget()
    # 3.展示窗口
    window.show()
    # 4.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

如果最小值和最大值都设置为 0,那么进度条会显示为一个不断循环滚动的繁忙状态;

标签:控件,None,Qt,16,self,进度条,progressBar,设置
From: https://www.cnblogs.com/FlurryHeart/p/18652494

相关文章

  • 12306分流抢票软件 bypass v1.16.43 绿色版(春节自动抢票工具)
    软件介绍12306Bypass分流抢票软件,易操作强大的12306抢票软件,全程自动抢票,云识别验证码打码,多线程秒单、稳定捡漏,支持抢候补票、抢到票自动付款,支持多天、多车次、多席别、多乘客、短信提醒等功能。1、Bypass分流抢票本身附带云识别模块帮助识别,但实际测试即便是不使用也不需要......
  • 功能齐全的 WPF 自定义控件
    功能齐全的WPF自定义控件资源库(收藏版)阅读目录前言控件介绍控件实现功能支持框架控件使用控件效果控件案例项目地址官方文档在线源码总结最后 前言 推荐一款界面美观、功能齐全的WPF自定义控件资源库。这款资源库通过封装一系列常用的控件,简化开发流程......
  • ybt1678 独木桥
    1678:独木桥时间限制:1500ms内存限制:131072KB【题目描述】Alice和Bob是好朋友,有一天他们带了\(n\)个孩子过独木桥。为了方便,我们将问题抽象如下:将独木桥看成一个长度无限长的实数轴,将每个孩子看作数轴上的一个实数点。数轴从左到右坐标不断增大。孩子的位置用......
  • 中国人工智能开源软件发展白皮书 | 166页PDF免费下载
    《中国人工智能开源软件发展白皮书》是一份详尽的报告,旨在梳理和分析中国人工智能开源软件的发展现状和生态。这份白皮书由中国人工智能开源软件发展联盟编写,涵盖了以下几个主要方面:人工智能开源软件发展现状:白皮书对人工智能领域的开源软件进行了全面的分析,包括各种软......
  • 解决方案 | aardio的plus控件实现无边框悬浮窗带按钮带置顶
    importfonts.fontAwesome;importwin.ui;/*DSG{{*/varwinform=win.form(text="aardioform";right=312;bottom=50;border="none";menu=false;title=false)winform.add(bkplus={cls="bkplus";left=2;top=5;right=205;bottom=46;backgro......
  • 两个int值,分别对应一个16进制字节高四位和低四位时的转换方法。
    例如:inta=1;intb=2;想要把他们转换成一个16进制QByteArray0x12分别对应高四位和低四位。使用以下方法:inta=1;intb=2;QByteArrayarray=QByteArray(1,(char)((a&0xFF)<<4|(b&0xFF)));原理:a=1&0xFF转换成二进制就是00000001&11111111,每一......
  • LeetCode169.多数元素
    题目:给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于[n/2]的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:nums=[3,2,3]输出:3示例2:输入:nums=[2,2,1,1,1,2,2]输出:2思路:哈希法遍历数组,通过map统计数量,k......
  • Linux 安装 node.js 16.14.0
    1.创建目录mkdir/usr/local/node2.进入该目录cd/usr/local/node3.下载安装包wgethttps://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz4.解压tar-xvfnode-v16.14.0-linux-x64.tar.xz5.重命名//mv原文件夹名称改变后文件夹的名称mvnode......
  • [Qt] 万字详解 | 常用控件 | Button | Label | LCD | ProgressBar
    目录按钮类控件1、PushButton按钮2、RadioButtion单选click、press、release、toggled的区别3、CheckBox复选4、ToolButton显示类控件1、Label2、LCDNumber3、ProgressBar4、CalendarWidget按钮类控件1、PushButton按钮概述:QPushButton是一个表示......
  • 15. 液晶显示控件
    一、液晶显示控件  液晶显示控件QLCDNumber用来显示数字和一些特殊符号,常用来显示数值、日期和时间。可以显示的数字和符号有0/O、1、2、3、4、5/S、6、7、8、9/g、减号、小数点、A、B、C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度数(在字符串中用单引号表示)和空格。QLC......