对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切换hosts文件代码示例
Dec 31 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
详解用python实现简单的遗传算法
Jan 02 Python
Python同步遍历多个列表的示例
Feb 19 Python
python中图像通道分离与合并实例
Jan 17 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
python实现马丁策略的实例详解
Jan 15 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 Python
Python中基础数据类型 set集合知识点总结
Aug 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 动态添加记录
2009/03/10 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php实现计数器方法小结
2015/01/05 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php常量详细解析
2015/10/27 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
img标签中onerror用法
2009/08/13 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
jquery实现轮播图特效
2020/04/12 jQuery
使用Python生成随机密码的示例分享
2016/02/18 Python
Python数据操作方法封装类实例
2017/06/23 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
关于Python的一些学习总结
2018/05/25 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
python的setattr函数实例用法
2020/12/16 Python
采购部主管岗位职责
2014/01/01 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
学校春季防火方案
2014/06/08 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS