对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程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
python异步存储数据详解
Mar 19 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 Python
Python可视化工具如何实现动态图表
Oct 23 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 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使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
Weblogic的布署方式
2013/08/23 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
政治思想表现评语
2014/05/04 职场文书
爱与责任演讲稿
2014/05/20 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
python 模块重载的五种方法
2021/04/24 Python