(3) PyQt5 实现漂亮进度条 ProgressBar

本文详细介绍了如何使用Qt Designer设计界面,包括背景Frame、TextEdit和Progress条,然后通过Python代码实现定时器驱动进度条变化并触发窗口切换。从UI设计到代码实战,适合初学者参考。

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

目录

一、效果展示

 二、使用Designer设计UI

1、添加背景Frame

2、添加文本框Text Edit

3、添加进度条Progress  

三、编写py代码实现

1、将ui编译成py文件

2、设置定时器QTimer

(1)定时器每100ms运行一次,触发函数 load_progress_bar。

(2)load_progress_bar 进度条自动加1,直到100%。

(3)进度条100%后,跳转到下一个窗口

四、效果展示

五、源码下载


一、效果展示

 二、使用Designer设计UI

1、添加背景Frame

添加Frame,并设置样式。设置样式示例:

QFrame {    background-color: rgb(56, 58, 89);    
    color: rgb(220, 220, 220);
    border-radius: 10px;
}

2、添加文本框Text Edit

3、添加进度条Progress  

 UI界面到此基本Ok。

三、编写py代码实现

1、将ui编译成py文件

命令有2种:PyQt和PySide,分别如下:

# PyQt 安装命令
pip install pyqt5 pyqt5-tools
# 编译qrc文件的命令 
pyrcc5 resource.qrc -o resource.py
# 编译ui文件的命令 
pyuic5 main_window.ui -o main_window.py
# PySide 安装命令 
pip install pyside6
# 编译qrc文件的命令 
pyside6-rcc src.qrc -o dst.py
# 编译ui文件的命令 
pyside6-uic src.ui -o dst.py

这里介绍下二者区别:

PyQt(由 Riverbank Computing 开发维护)是GPLv3协议,使用该代码的程序要开源,如果闭源商用就会违反协议。PyQt历史更长一些,比较稳定,开发社区也比较大,相关的资料都非常成熟。

PySide(又名Qt for Python)是Qt公司的亲儿子,是LGPL协议,免费商用。后起之秀,是Nokia和Riverbank Computing谈免费商用协议LGPL失败后自己开发出来的。

2、设置定时器QTimer

(1)定时器每100ms运行一次,触发函数 load_progress_bar。

    def set_loader(self):
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.load_progress_bar)
        self.timer.start(100)

(2)load_progress_bar 进度条自动加1,直到100%。

    def load_progress_bar(self):
        self.progressBar.setValue(self.progressBar.value() + 1)
        self.label_title.setStyleSheet(f"color: rgb(254, {self.cont_label_title[0]}, 199);")
        self.label_description.setStyleSheet(f"color: rgb(98, {self.cont_label_title[1]}, 164);")
        self.cont_label_title[0] += 1
        self.cont_label_title[1] += 1
        if self.progressBar.value() >= 100:
            self.window.close()
            self.open_table_main()
            self.timer.stop()

(3)进度条100%后,跳转到下一个窗口

    def open_table_main(self):
        self.MainWindow = QtWidgets.QMainWindow()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self.MainWindow)
        self.MainWindow.show()

至此,代码基本完成。

四、效果展示

五、源码下载

https://download.csdn.net/download/lildkdkdkjf/64530401

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HelloCode5110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值