python实现无边框进度条的实例代码

作者:螺旋测微计 时间:2023-07-23 05:22:59 

上python课程时需要设计一个系统,想着为系统加一个启动动画,所以做成了图片加进度条的形式。
本文旨在用python实现无边框的进度条,并在其基础上加了图片,体现了某程序加载动画的效果

实现说明

1.进度条的部分用到了tkinter中的画布组件
2.图片无边框显示用到了PYQT5中的QMainWindow, QApplication
(由于水平有限,只好用两个不同的库来实现)

源代码


import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QMainWindow, QApplication
import time
from 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实现无边框进度条的实例代码

来源:https://blog.csdn.net/qq_43236872/article/details/111835616

标签:python,无边框,进度条
0
投稿

猜你喜欢

  • MySQL实现行列转换

    2024-01-18 20:56:17
  • 教你如何用python开发一款数字推盘小游戏

    2021-11-03 23:22:14
  • Python实现识别文字中的省市区并绘图

    2021-10-11 08:14:52
  • Python+OpenCV 实现图片无损旋转90°且无黑边

    2021-11-09 17:04:12
  • 一文弄懂MYSQL如何列转行

    2024-01-17 18:05:21
  • web 2.0设计指导之一:简单[译]

    2008-10-12 09:37:00
  • python性能检测工具函数运行内存及运行时间

    2021-11-24 00:09:27
  • ASP编码问题的深入研究与解决方案(MSDN)

    2007-10-25 11:54:00
  • 讲解Python3中NumPy数组寻找特定元素下标的两种方法

    2023-07-17 09:58:42
  • javaScript事件机制兼容【详细整理】

    2024-05-13 10:07:01
  • win10下Python3.6安装、配置以及pip安装包教程

    2022-09-27 12:29:46
  • Python实现复杂对象转JSON的方法示例

    2021-11-14 09:55:47
  • python爬虫开发之selenium模块详细使用方法与实例全解

    2022-12-15 01:28:40
  • 详解Python流程控制语句

    2021-05-15 08:25:45
  • Python 给某个文件名添加时间戳的方法

    2023-02-10 21:12:56
  • Java并发编程数据库与缓存数据一致性方案解析

    2024-01-21 21:09:47
  • Django choices下拉列表绑定实例

    2023-05-06 14:08:52
  • 利用Python提取图片经纬度并锁定拍照地点

    2021-10-18 01:10:40
  • ES6/JavaScript使用技巧分享

    2024-04-30 10:10:04
  • python分割和拼接字符串

    2023-05-12 05:57:03
  • asp之家 网络编程 m.aspxhome.com