我如何获得一个python程序来重新启动并关闭现有的tkinter窗口?

时间:2020-09-24 15:04:08

标签: python tkinter

我试图弄清楚如何使用Tkinter重新启动python程序。基本上,当用户单击重新启动按钮时,程序应关闭所有现有的Tkinter选项卡并“重新启动”程序。我该怎么办?

这是我目前正在做的

scrollable bar chart

1 个答案:

答案 0 :(得分:0)

通常我会说您应该将整个代码放在一个循环中,但是tkinter打破了这一点,所以我建议的解决方案是非常不干净的。另外两个简单的脚本可与此脚本一起运行。

第一个是一个简单的多进程,类似于使用多进程通过另一个进程运行当前脚本/应用程序的方式。

然后将其添加到您在此处完成的功能的末尾以重新启动程序:

f = open("restart.txt", "w+")
f.write("true")
f.close()
exit() #or however you choose to end your program after destroying the roots

这是脚本/应用程序的开始(在完成其他操作之前,除了导入内容):

r = open("restart.txt", "w+")
r.write("false")
r.close()

最后,在第三个脚本中,添加一个简单的循环:

x = 5
while x = 5:
f = open("restart.txt", "r+")
restart = f.read()
if restart == "true":
#run your application/script
else:
f.close()

此操作的目标是运行您的应用程序,并同时运行此简单循环。当您想重新启动程序时,可以将文本文件更新为“ true”并关闭程序,然后简单的循环将再次运行您的程序,这会将值更改为false并阻止打开程序的无限窗口。我怀疑这是最好的解决方案,也不是您想要的,但它应该“重新启动”您的程序。