对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实现简单字典树的方法
Apr 29 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
快速入门python学习笔记
Dec 06 Python
分享6个隐藏的python功能
Dec 07 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
Python创建字典的八种方式
Feb 27 Python
Python range与enumerate函数区别解析
Feb 28 Python
在keras里实现自定义上采样层
Jun 28 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
javascript document.referrer 用法
2009/04/30 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
Python中encode()方法的使用简介
2015/05/18 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
如何查看python关键字
2021/01/17 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
如何进行Linux分区优化
2016/09/13 面试题
银行求职推荐信范文
2013/11/30 职场文书
五好党支部事迹材料
2014/02/06 职场文书
教师教学评估方案
2014/05/09 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
培训后的感想
2015/08/07 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
Python图像处理库PIL详细使用说明
2022/04/06 Python