win32 控件 滑块控件_PyQt5进度条类控件

本文介绍了PyQt5中的两种进度反馈控件——ProgressBar和QSlider的使用方法。通过示例代码展示了如何设置它们的属性、信号与槽函数,实现进度条和滑块的交互,以及自定义进度条的显示样式。同时,文中提及了进度条的循环滚动效果和反向显示、文本可见性的设置选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

b8c654654f24e5d4b01aec38ee06185f.png

进度条类控件主要显示任务的执行进度,PyQt5主要提供两种类型进度条控件:进度条ProgressBar和滑块控件QSlider。

一、ProgressBar:进度条

c865ac486f34a9dd0a293ed8a649104b.png执行长时间任务时,用进度条告诉用户的进展情况。

ProgressBar控件对应PyQt5中的QProgressBar类,常用方法及说明见下表,最常用的信号valueChanged,进度条值发生改变时发射。

a4c8f2b37d29ac03421616a4785d3161.png

874762440e0c1e0ee312f0af511474af.png

注:如果最小值和最大值都设置为0,进度条会显示为一个不断循环滚动的繁忙进度。

二、QSlider:滑块控件

PyQt5中提供两个滑动控件型输入控件QSlider和QScrollBar。

879d5e13ef9d7233fdc0529e91b129e2.png

QSlider和QScrollBar类常用方法及说明

691d3025928fa07c9f88987d1e247596.png

dba95e3943dbb9137527229678e78320.png

示例ui界面

QSlider_QProgressBar滑块和进度条控件使用示例

from PyQt5.Qt import *
from PyQt5 import QtGui
from ui_Demo_QSlider_QProgressBar import Ui_mainWindow

class QSlider_QProgressBar_Demo(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_mainWindow()  # 创建UI对象
        self.ui.setupUi(self)  # 构建UI
        # 设置控件(大小、位置、样式...)

        self.ui.horizontalScrollBar.setMaximum(100)
        self.ui.horizontalSlider.setMaximum(100)
        self.ui.progressBar.setMaximum(100)

        # 为横向滑块绑定valueChanged信号,在值发生更改是发射
        self.ui.horizontalSlider.valueChanged.connect(self.setfontsize)
        # self.ui.horizontalScrollBar.valueChanged.connect(self.setfontsize)
        # self.ui.verticalSlider.valueChanged.connect(self.setfontsize)
        # self.ui.verticalScrollBar.valueChanged.connect(self.setfontsize)

        # 为横向滑块绑定valueChanged信号,在值发生更改是发射
        self.ui.horizontalSlider_2.valueChanged.connect(self.do_valueChanged)

    # 定义槽函数,根据横向滑块的值改变垂直滑块的值和Label控件的字体大小
    def setfontsize(self):
        value = self.ui.horizontalSlider.value()
        self.ui.verticalSlider.setValue(value)
        self.ui.label.setFont(QtGui.QFont("楷体", value))

    #自定义槽函数
    def do_valueChanged(self,value):
        self.ui.progressBar.setValue(value)

    #自动关联槽函数,设置进度条显示参数
    def on_radioButton_clicked(self):
        self.ui.progressBar.setFormat("%p%")  #显示格式-百分比
    def on_radioButton_2_clicked(self):
        self.ui.progressBar.setFormat("%v")   #显示格式-当前值

    @pyqtSlot(bool)
    def on_checkBox_clicked(self,checked):
        self.ui.progressBar.setInvertedAppearance(checked)  #设置进度条是否反方向显示进度

    @pyqtSlot(bool)
    def on_checkBox_2_clicked(self,checked):
        self.ui.progressBar.setTextVisible(checked)  #设置进度值文本是否可见


if __name__ == '__main__':
    import sys
    #1、创建一个应用程序对象
    app=QApplication(sys.argv)

    #2、控件的操作
    #创建控件
    window=QSlider_QProgressBar_Demo()
    #展示控件
    window.show()

    #3、应用程序的执行,进入到消息循环
    sys.exit(app.exec_())

f22e20b9c3899800124b8d84f65d7cfe.gif

以上进度条也可以通过自定义加载GIF图片方式实现,具体可以参见往期推文Python做个界面小工具这么简单,你确定不学一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值