对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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
解决Python传递中文参数的问题
Aug 04 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python中partial()基础用法说明
Dec 30 Python
Python3.5运算符操作实例详解
Apr 25 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
Python读取表格类型文件代码实例
Feb 17 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
基于Python脚本实现邮件报警功能
May 20 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
计数器详细设计
2006/10/09 PHP
php表单提交问题的解决方法
2011/04/12 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
js function定义函数使用心得
2010/04/15 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
极简的Python入门指引
2015/04/01 Python
python如何查看系统网络流量的信息
2016/09/12 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
2014年师德师风自我剖析材料
2014/09/27 职场文书
学校捐书活动总结
2015/05/08 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL