对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实现人人网登录示例分享
Jan 19 Python
Python抓取百度查询结果的方法
Jul 08 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
Python操作MongoDB详解及实例
May 18 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
Python基于time模块表示时间常用方法
Jun 18 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Numpy数组的广播机制的实现
Nov 03 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
python实现杨辉三角的几种方法代码实例
Mar 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
php遍历数组的方法分享
2012/03/22 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
你应该知道的python列表去重方法
2017/01/17 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
简单了解django orm中介模型
2019/07/30 Python
Python 如何测试文件是否存在
2020/07/31 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
英国手机零售商:Metrofone
2019/03/18 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
体育口号大全
2014/06/18 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
导游词欢迎词
2015/02/02 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书