tkinter +Progressbar文件上传实现进度条效果

tkinter 文件上传实现进度条效果

使用的是flask web框架,本来想通过前端不断通过请求后端来实现进度条实时更新,无奈封装的ftp上传类回调中无法写业务代码逻辑,前端展示可参考https://blog.csdn.net/q1w2e3r4470/article/details/72702406

from tkinter import *
from tkinter import filedialog, ttk
import time

root = Tk()  # 创建一个Tkinter.Tk()实例
# root.withdraw() #隐藏窗口
root.wm_attributes('-topmost', 1)
root.title('消息')
root.geometry('600x300+450+200')
localName = ''


def up():
    up.place_forget()
    select.place_forget()
    mpb = ttk.Progressbar(root, orient="horizontal", length=200, mode="determinate")
    mpb.pack()
    mpb["maximum"] = 100
    mpb["value"] = 0
    Label(root, text='正在上传...', fg='red').pack()
    for i in range(100):
        mpb["value"] = i + 1
        root.update()
        time.sleep(0.1)


def callback():
    global localName
    localName = filedialog.askopenfilename(title=u"选择文件")
    if localName == '':
        lb.config(text="您没有选择任何文件")
    else:
        lb.config(text=localName)
        select.config(text="重新上传")
        select.place(anchor=CENTER, x=240, y=60)
        up.config(text="确认上传", )
        up.place(anchor=CENTER, x=330, y=60)
        up.pack_forget()


lb = Label(root, text='')
lb.pack()
select = Button(root, text='选择文件', command=callback)
select.pack()
up = Button(root, text='', width=0, height=0, command=up)
up.pack_forget()
print(localName)
root.mainloop()







在这里插入图片描述
在这里插入图片描述

布局参考博客
https://blog.csdn.net/liuxu0703/article/details/54428405

xxx_forget 实现隐藏按钮
wm_attributes('-topmost', 1) 实现弹框靠前
geometry 弹框大小位置
update 更新进度条数据
*在button中的command 回调函数中是没有返回值的,如果需要可以使用 global,nonlocal修饰外部引用


  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值