【发布时间】:2018-07-13 21:24:35
【问题描述】:
我创建了这个代码,它每秒更新一个标签以指示正在加载某些内容(运行代码以了解我的意思)。我正在使用带有 tkinter 的线程模块,但我觉得必须有一种更有效的方法来做到这一点。
这是我的代码:
from tkinter import *
from time import sleep
import threading
root = Tk()
new_var = StringVar()
new_var.set('Loading')
def change_text():
array = [".", "..", "...", ""]
while True:
for num in range(4):
sleep(1)
new_var.set(f"Loading{array[num]}")
root.update_idletasks()
l = Label(root, textvariable = new_var)
l.pack()
Loading_animation = threading.Thread(target=change_text)
Loading_animation.start()
root.mainloop()
另外,如果没有更好的方法来做到这一点,我该如何防止在关闭根窗口时不断收到错误?
谢谢!
【问题讨论】:
-
@IgorS 这并没有解决潜在的错误。我相信潜在的错误是我没有重新加入我创建的第二个线程,但我不知道该怎么做,因为我的代码最后卡在了“root.mainloop()”中。
标签: python multithreading tkinter