gpt4 book ai didi

Python:使用 Tkinter 时脚本不退出

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:43 25 4
gpt4 key购买 nike

我已经创建了 3 个脚本,现在我正在 Tkinter 中创建一个简单的前端菜单。当我单独使用这些脚本时,它们会正常工作和退出,所以我知道它们没有问题。问题一定出在我的菜单上(如下)。

从菜单中,我选择其中一个工具,它调用另一个脚本并运行它。该脚本只是挂起并等待,直到我按键盘上的 Enter 键。当我按回车键时,脚本就会退出。我怎样才能让它自动退出而不是我必须按回车键?

提前致谢。

from Tkinter import *
import Tkinter
import subprocess

root = Tkinter.Tk()
root.title("SimonsSoftware, 2014")
root.geometry('255x200+200+200')
text = Text(root)
text.insert(INSERT, "Please select which tool\nyou wish to use...")


def close_window():
root.withdraw()

def kill_window():
root.destroy()

def callDuff():
print "Call back works"
subprocess.Popen("python duff.duplicateFileFinder\duff.py", shell=True)
kill_window()

def callFibs():
print "Call back works"
subprocess.Popen("python fibs.FileInvestigationBiteSize\\fibs.py", shell=True)
close_window()

def callShift():
print "Call back works"
subprocess.Popen("python shift.SimonsHashInfoFinderTool\shift.py", shell=True)
close_window()


buttonOne = Tkinter.Button(root, text ="DUFF", relief=FLAT, command=callDuff)
buttonTwo = Tkinter.Button(root, text ="FIBS", relief=FLAT, command=callFibs)
buttonThree = Tkinter.Button(root, text ="SHIFT", relief=FLAT, command=callShift)

buttonOne.pack()
buttonTwo.pack()
buttonThree.pack()
text.pack()
root.mainloop()

最佳答案

显式等待子进程将解决您的问题。 (使用subprocess.Popen.wait)

def callDuff():
print "Call back works"
proc = subprocess.Popen("python duff.duplicateFileFinder\duff.py", shell=True)
#^^^^^^
kill_window()
proc.wait() # <-----

顺便说一句,root.withdraw() 不会终止程序。它只是隐藏主窗口。

关于Python:使用 Tkinter 时脚本不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com