对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之关于类的初步认识
Oct 11 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Python字典的核心底层原理讲解
Jan 24 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
python批量生成条形码的示例
Oct 10 Python
python 如何对logging日志封装
Dec 02 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
php中删除、清空session的方式总结
2015/10/09 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
使用javascript插入样式
2016/03/14 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
在Django的上下文中设置变量的方法
2015/07/20 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
TensorFlow实现模型评估
2018/09/07 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python 实现线程之间的通信示例
2020/02/14 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
花卉与景观设计系大学生求职信
2013/10/01 职场文书
市场营销专业推荐信
2013/11/03 职场文书
经济管理专业自荐信
2013/12/30 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
给同学的道歉信
2014/01/16 职场文书
事业单位辞职信范文
2014/01/19 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
2014年度考核工作总结
2014/12/24 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS