时间:2021-05-22
上python课程时需要设计一个系统,想着为系统加一个启动动画,所以做成了图片加进度条的形式。
本文旨在用python实现无边框的进度条,并在其基础上加了图片,体现了某程序加载动画的效果
实现说明
1.进度条的部分用到了tkinter中的画布组件
2.图片无边框显示用到了PYQT5中的QMainWindow, QApplication
(由于水平有限,只好用两个不同的库来实现)
源代码
import sysfrom PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import QMainWindow, QApplicationimport timefrom tkinter import *class MainWIndow(QMainWindow): def __init__(self, parent=None): super(MainWIndow, self).__init__(parent) self.resize(500, 667) self.setWindowTitle('私人医生 copyright@2020 1.2.1') # 设置无边框窗口样式 self.setWindowFlags(Qt.FramelessWindowHint) #子窗口,窗口无按钮 ,但有标题,可注释掉观察效果 self.setWindowFlags(Qt.SubWindow) self.setObjectName("MainWindow") self.setStyleSheet("#MainWindow{border-image:url(images/python.jpg);}")if __name__ == '__main__': app = QApplication(sys.argv) win = MainWIndow() win.show() #更新进度条函数def change_schedule(now_schedule,all_schedule): canvas.coords(fill_rec, (5, 5, 6 + (now_schedule/all_schedule)*100, 25)) root.update() #进度显示 x.set(str(round(now_schedule/all_schedule*100,2)) + '%') if round(now_schedule/all_schedule*100,2) == 100.00: x.set("完成")#创建画布root = Tk()#画布位置控制,前两个参数为宽度和高度,后两个参数为xy坐标root.geometry("480x30+720+830")#创建画布frame = Frame(root).grid(row = 0,column = 0)#使用时将框架根据情况选择新的位置canvas = Canvas(frame,bg = "white")canvas.grid(row = 0,column = 0)x = StringVar()#隐藏标题栏root.overrideredirect(True)#将边框像素设置为0,即取消边框canvas.configure(highlightthickness=0)#进度条以及完成程度#设置矩形,无填充即为边框out_rec = canvas.create_rectangle(5,5,480,25,outline = "red",width = 1)fill_rec = canvas.create_rectangle(5,5,5,25,outline = "",width = 0,fill = "blue")Label(frame,textvariable = x).grid(row = 0,column = 1) for i in range(480): time.sleep(0.01) change_schedule(i,99)#root.mainloop()运行截图
到此这篇关于python实现无边框进度条的实例代码的文章就介绍到这了,更多相关python无边框进度条内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了js实现滑动进度条效果的具体代码,供大家参考,具体内容如下进度条:js滑动进度条效果*{margin:0;padding:0;user-se
本文实例讲述了python在控制台输出进度条的方法。分享给大家供大家参考。具体实现方法如下:进度条效果如下所示:|#######################
本文实例为大家分享了vue实现拖拽进度条的具体代码,供大家参考,具体内容如下组件代码:+{{per}}%-/**min进度条最小值*max进度条最大值*v-mo
本文实例为大家分享了js实现简单进度条的具体代码,供大家参考,具体内容如下实现进度条需要三个部分:1、外部的大容器2、在增长的进度条3、显示进度条可视化的百分数
python实现文本进度条程序进度条加载进度条单行刷新功能,具体内容如下所示:利用time库来替代某个程序的进行过程,做实例,思路是,简单打印出来程序进度单行刷