Python:使用Tkinter时脚本未退出

泡泡龙

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

从菜单中,选择一个工具,该工具将调用另一个脚本并运行它。脚本只是挂起,一直等到我按键盘上的Enter键。当我按Enter键时,脚本然后退出。如何使其自动退出,而不是必须按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()不终止该程序。它只是隐藏主窗口。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误Bash iOS上的脚本未退出

来自分类Dev

关闭窗口时,消息循环未退出

来自分类Dev

如果目录未退出,则使用NSFileManager返回

来自分类Dev

通过freeSSHd运行时Powershell脚本未退出

来自分类Dev

PhantomJS进程未退出

来自分类Dev

SharePoint网站未退出

来自分类Dev

VBA For循环未退出

来自分类Dev

节点程序未退出

来自分类Dev

SharePoint网站未退出

来自分类Dev

如何使用Tkinter Button从Python退出?

来自分类Dev

在Python中使用Tkinter退出时的消息框对话框

来自分类Dev

如何使用Python脚本退出Linux终端?

来自分类Dev

Gradle Exec任务未退出

来自分类Dev

C#-程序未退出

来自分类Dev

Java getInputStream读取未退出

来自分类Dev

C#-程序未退出

来自分类Dev

VBA递归方法-退出功能未退出

来自分类Dev

重点关注UIButton时,Siri Remote的菜单按钮未退出应用程序

来自分类Dev

python tkinter mainloop在关闭窗口时不退出

来自分类Dev

多线程时以编程方式退出python脚本

来自分类Dev

运行python脚本运行shell文件时退出代码191

来自分类Dev

使用bash脚本SSH时无法正常退出

来自分类Dev

Python脚本完全退出

来自分类Dev

从使用$()的bash脚本退出

来自分类Dev

包装并使用安装程序后,Windows上的可执行文件未退出

来自分类Dev

接收错误:html-pdf:PDF生成超时。Phantom.js脚本未退出。在Firebase Cloud Functions中

来自分类Dev

Android应用程序未退出

来自分类Dev

Java RMI应用程序未退出

来自分类Dev

可迭代的多处理队列未退出