【发布时间】:2021-04-14 17:46:50
【问题描述】:
有没有办法在 tkinter 中创建加载屏幕?
代码如下:
from tkinter import *
root = Tk()
text = Text(root , width = 65 , height = 20 , font = "consolas 14")
text.pack()
text.insert('1.0' , "hello\n"*5000000)
mainloop()
这里,主窗口需要一些时间才能弹出,所以我想创建一个临时窗口,告诉用户一些进程正在进行中。
为此,我做了这样的事情:
from tkinter import *
root = Tk()
temp_win = Toplevel()
message_label = Label(temp_win , text = "Loading.. Please wait")
message_label.pack()
text = Text(root , width = 65 , height = 20 , font = "consolas 14")
text.pack()
text.insert('1.0' , "hello\n"*5000000)
mainloop()
但是这里,这两个窗口只有在调用mainloop函数时才会弹出,这是没有用的。
我的目标是在主窗口弹出之前显示临时窗口。
有没有办法在 tkinter 中实现这一点?
如果有人能帮助我,那就太好了。
【问题讨论】:
-
为什么你的应用程序很慢?
-
@DaniyalWarraich:我让它变慢了,只是为了演示。正如您在
text.insert('1.0' , "hello\n"*5000000)这一行中看到的那样,我在文本小部件中插入了很多行,这使得应用程序变慢了。 -
主窗口弹出需要时间?
-
试试下面的解决方案,它确实使用
threading,但不直接与主tkinter通信。