对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中使用dom模块生成XML文件示例
Apr 05 Python
python使用xslt提取网页数据的方法
Feb 23 Python
Tensorflow卷积神经网络实例
May 24 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
Python装饰器用法与知识点小结
Mar 09 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
python中os包的用法
Jun 01 Python
Flask缓存静态文件的具体方法
Aug 02 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
用Python抢过年的火车票附源码
2015/12/07 Python
pycharm安装和首次使用教程
2018/08/27 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python 实现两个线程交替执行
2020/05/02 Python
python实现批量转换图片为黑白
2020/06/16 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
如何安装ruby on rails
2014/02/09 面试题
自荐信包含哪些内容
2013/10/30 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
小学校本培训方案
2014/06/06 职场文书
运动会演讲稿300字
2014/08/25 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
毕业证明书
2015/06/19 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL