我的tkinter应用程序窗口无法正确关闭。我正在tkinter 8.6中使用python 3.6.6
我的代码基本上是这样做的:
打开一个进程,其中:
我尝试使用:
我将其剥离为以下代码,请复制并执行和/或告诉我有什么问题...
from time import sleep, time
import threading
from multiprocessing import Process, set_start_method
from tkinter import *
CtrlApplObj = None
def Start():
global CtrlApplObj
CtrlApplObj = None
CtrlApplObj = ControlApplication()
CtrlApplObj.run()
def End():
print("Quit now...")
#CtrlApplObj.root.destroy()
CtrlApplObj.root.quit()
class ControlApplication():
def __init__(self):
pass
def run(self):
self.root=Tk()
print("Mainloop...")
self.root.mainloop()
def test():
sleep(3)
End()
def execute():
T1 = threading.Thread(target=test)
T1.start()
Start()
T1.join()
if __name__ == "__main__":
set_start_method("spawn")
for i in range(2):
TestProcess = Process(target=execute)
TestProcess.start()
TestProcess.join()
答案 0 :(得分:1)
我的最终解决方案是在测试线程中不使用任何tkinter操作。然后销毁。
我的测试流程没有关闭还有另一个问题。这是因为队列不为空。那个虚张声势的过程结束了。