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


Posted in Python onDecember 30, 2020

上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实现无边框进度条的实例代码

到此这篇关于python实现无边框进度条的实例代码的文章就介绍到这了,更多相关python无边框进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
python opencv实现运动检测
Jul 10 Python
Numpy之文件存取的示例代码
Aug 03 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Python threading的使用方法解析
Aug 28 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
pandas数据拼接的实现示例
Apr 16 Python
python中的列表和元组区别分析
Dec 30 #Python
python实现xml转json文件的示例代码
Dec 30 #Python
python实现KNN近邻算法
Dec 30 #Python
python 实现逻辑回归
Dec 30 #Python
Python 随机按键模拟2小时
Dec 30 #Python
Python的scikit-image模块实例讲解
Dec 30 #Python
用Python实现职工信息管理系统
Dec 30 #Python
You might like
关于PHP中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
php多进程应用场景实例详解
2019/07/22 PHP
php输出形式实例整理
2020/05/05 PHP
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
js实现搜索栏效果
2018/11/16 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
详解Python实现进度条的4种方式
2020/01/15 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
函授毕业生自我鉴定范文
2014/03/25 职场文书
社区健康教育工作方案
2014/06/03 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
中学社团活动总结
2015/05/07 职场文书
大学入学感言
2015/08/01 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python