Python 从二级进程中销毁tkinter窗口
我有一个程序,在某一点上,弹出一个tkinter窗口。一旦关闭窗口,程序将继续。这是可以的,但如果用户没有这样做,我需要程序在2分钟后关闭窗口 由于我使用Pyinstaller,我明白我需要使用多进程而不是线程。无论哪种方式,当我从进程调用root.destroy()时,它都会失败,因为它找不到它(“没有定义名称‘root’”;命令行这样说,IDLE什么也不说) 我花了几个小时研究如何实现这个“简单”的功能。我只是想快速解决。这甚至不是我最初的问题,最初第二个进程会绕过主进程中的“input()”或将值“输入”到主进程中,以便继续,但我也不知道如何做到这一点。如果这更容易解决,我愿意 我已经尝试了很多方法,但我想我会将其粘贴到我所处的位置:Python 从二级进程中销毁tkinter窗口,python,python-3.x,tkinter,user-input,Python,Python 3.x,Tkinter,User Input,我有一个程序,在某一点上,弹出一个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
after
机制在一段时间后注册要做的事情。看:谢谢!!请将评论更改为答案,以便我可以选择它…这是否回答了您的问题@Elektrofire:完成了,我创造了一个答案