对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 27 Python
进一步探究Python的装饰器的运用
May 05 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
Python实现的单向循环链表功能示例
Nov 10 Python
浅析python继承与多重继承
Sep 13 Python
python使用正则表达式来获取文件名的前缀方法
Oct 21 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
Python多线程threading模块用法实例分析
May 22 Python
使用Python中的reduce()函数求积的实例
Jun 28 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
python matplotlib绘制三维图的示例
Sep 24 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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/06 新手入门
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
深入理解Django的自定义过滤器
2017/10/17 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python的launcher用法知识点总结
2020/08/07 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
分享一个python的aes加密代码
2020/12/22 Python
你懂得怎么写自荐信吗?
2013/12/27 职场文书
学校安全防火方案
2014/06/07 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
2016年学校招生广告语
2016/01/28 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang
Python自动化实战之接口请求的实现
2022/05/30 Python