从辅助进程中销毁 tkinter 窗口



我有一个程序,在某一时刻,弹出一个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()

多谢

您可以使用tkinterafter机制在一段时间后注册一些待办事项。看: tkinter:如何使用后方法

相关内容

  • 没有找到相关文章

最新更新