对python GUI实现完美进度条的示例详解


Posted in Python onDecember 13, 2018

在用python做一个GUI界面时,想搞一个进度条实时显示下载进度,但查阅很多博客,最后的显示效果都类似下面这种:

对python GUI实现完美进度条的示例详解

这种效果在CMD界面看着还可以,但放到图形界面时就有点丑了,所以我用Canvas重新做了一个进度条,完美满足了我的要求,看着也比较舒服。

import time
import threading
from tkinter import *
 
 
def update_progress_bar():
	for percent in range(1, 101):
		hour = int(percent/3600)
		minute = int(percent/60) - hour*60
		second = percent % 60
		green_length = int(sum_length * percent / 100)
		canvas_progress_bar.coords(canvas_shape, (0, 0, green_length, 25))
		canvas_progress_bar.itemconfig(canvas_text, text='%02d:%02d:%02d' % (hour, minute, second))
		var_progress_bar_percent.set('%0.2f %%' % percent)
		time.sleep(1)
 
 
def run():
	th = threading.Thread(target=update_progress_bar)
	th.setDaemon(True)
	th.start()
 
 
top = Tk()
top.title('Progress Bar')
top.geometry('800x500+290+100')
top.resizable(False, False)
top.config(bg='#535353')
 
# 进度条
sum_length = 630
canvas_progress_bar = Canvas(top, width=sum_length, height=20)
canvas_shape = canvas_progress_bar.create_rectangle(0, 0, 0, 25, fill='green')
canvas_text = canvas_progress_bar.create_text(292, 4, anchor=NW)
canvas_progress_bar.itemconfig(canvas_text, text='00:00:00')
var_progress_bar_percent = StringVar()
var_progress_bar_percent.set('00.00 %')
label_progress_bar_percent = Label(top, textvariable=var_progress_bar_percent, fg='#F5F5F5', bg='#535353')
canvas_progress_bar.place(relx=0.45, rely=0.4, anchor=CENTER)
label_progress_bar_percent.place(relx=0.89, rely=0.4, anchor=CENTER)
# 按钮
button_start = Button(top, text='开始', fg='#F5F5F5', bg='#7A7A7A', command=run, height=1, width=15, relief=GROOVE, bd=2, activebackground='#F5F5F5', activeforeground='#535353')
button_start.place(relx=0.45, rely=0.5, anchor=CENTER)
 
top.mainloop()

显示效果如下:

对python GUI实现完美进度条的示例详解

以上这篇对python GUI实现完美进度条的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
Python常见数据结构详解
Jul 24 Python
Python实现远程调用MetaSploit的方法
Aug 22 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
python实现键盘控制鼠标移动
Nov 27 Python
想学python 这5本书籍你必看!
Dec 11 Python
python assert的用处示例详解
Apr 01 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 Python
PyTorch 1.0 正式版已经发布了
Dec 13 #Python
修改python plot折线图的坐标轴刻度方法
Dec 13 #Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 #Python
Python实现的各种常见分布算法示例
Dec 13 #Python
Python线性拟合实现函数与用法示例
Dec 13 #Python
Python基于百度云文字识别API
Dec 13 #Python
Python3实现获取图片文字里中文的方法分析
Dec 13 #Python
You might like
php防止伪造的数据从URL提交方法
2014/06/27 PHP
discuz目录文件资料汇总
2014/12/30 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
js对象数组按属性快速排序
2011/01/31 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
客户表扬信范文
2014/01/10 职场文书
土木工程专业推荐信
2014/02/19 职场文书
赔偿协议书范本
2014/04/15 职场文书
正科级干部考察材料
2014/05/29 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
保险内勤岗位职责
2015/04/13 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS