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 相关文章推荐
python 捕获shell脚本的输出结果实例
Jan 04 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
Python实现针对给定单链表删除指定节点的方法
Apr 12 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
Pytorch 实现权重初始化
Dec 31 Python
pycharm导入源码的具体步骤
Aug 04 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
python中re模块知识点总结
Jan 17 Python
用Python提取PDF表格的方法
Apr 11 Python
python使用torch随机初始化参数
Mar 22 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新手上路(八)
2006/10/09 PHP
PHP插入排序实现代码
2013/04/04 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
python对excel文档去重及求和的实例
2018/04/18 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
2015年简历自我评价范文
2015/03/11 职场文书
如何写辞职信
2015/05/13 职场文书
python中如何对多变量连续赋值
2021/06/03 Python
MySQL Server 层四个日志
2022/03/31 MySQL