我有一个程序,在某一时刻会弹出一个tkinter窗口。关闭窗口后,程序将继续。可以,但是如果用户尚未关闭,我需要程序在2分钟后关闭窗口。
由于我使用Pyinstaller,所以我了解到我需要使用多进程而不是线程。无论哪种方式,当我从进程中调用root.destroy()时,都会失败,因为找不到它(“名称'root'未定义”;命令行表示这一点,IDLE却什么也没说)。
我已经花了很多时间研究如何实现此“简单”功能。我只想快速解决。这甚至不是我最初的问题,最初,辅助过程将绕过或“输入一个值”到主过程中的“ input()”中,以便继续进行,但是我也不知道该怎么做。如果这更容易解决,我会努力的。
我已经尝试了很多事情,但是我想我只会粘贴我所在的位置:
from multiprocessing import Process
import time
import tkinter as tk
def func2():
global root
time.sleep(3)
root.destroy()
if __name__ == '__main__':
global root
root = tk.Tk()
T = tk.Text(root, height=20, width=60)
T.pack()
T.insert(tk.END, "test")
p2 = Process(target=func2)
p2.start()
tk.mainloop()
非常感谢,
您可以使用tkinter after
机制在一段时间后注册待办事项。看到:tkinter: how to use after method