Tkinter Python弹出窗口显示消息,但在弹出窗口运行时仍允许另一个函数运行。

时间:2018-10-15 20:05:08

标签: python tkinter

我正在尝试在另一个功能正在运行时显示“正在下载...”弹出窗口,然后在完成该功能后关闭该弹出窗口。

谢谢

3 个答案:

答案 0 :(得分:0)

创建一个Tk()窗口,并在其中放置进度条。

答案 1 :(得分:0)

import tkinter as t
from tkinter import ttk

root = t.Tk()
t.Label(root, text='Downloading...').pack()
pb = ttk.Progressbar(root, length=200, mode='indeterminate')
pb.pack()
pb.start()   
root.update()

此代码将立即显示此窗口:

tk download window

此外,这不会停止执行...如果您在下面编写更多代码,则python将继续执行您的程序; 有一个警告:您在做其他事情时必须不时致电root.update(),以允许tkinter更新窗口,否则您的窗口似乎会冻结并且窗口管理器会将窗口标记为“无响应”。

答案 2 :(得分:0)

您可以通过在StackOverflow中搜索[tkinter] pop-up window来了解如何创建弹出窗口。完成后,这是一个通用的“下载”包装函数。

def downloading(parent, function, args, kwargs):
    popup = <code or function call to create popup using parent)
    ret = function(*args, **kwargs)
    popup.destroy()
    return ret

args是一个元组或位置参数列表。 kwargs是关键字名称和参数的键值字典。