在PyQt4 GUI关闭后关闭打开的控制台
问题描述:
我用cx_Freeze创建了一个python程序的exe文件。
我已经使用PyQt4来创建一个GUI。在PyQt4 GUI关闭后关闭打开的控制台
它完美地打开,首先是一个空的控制台,然后是GUI。
但是,当我关闭GUI(在运行程序之后或不)时,控制台保持打开状态。如果我点击控制台的任何部分,它会给我弹出错误提示“MyProgram已停止工作”
这已经在系统(Win7-64bit)上用python install(3.4.4)和另一个系统没有python(Win7-64bit)。
有图形用户界面关闭后,我可以关闭此控制台的方法吗?或更好的... 如何我关闭控制台?
devenv的
的Python:3.4
操作系统:Windows 7
编辑:
我设法寻找周围的工作.....我close_application方法我包括这行使用psutil杀死一个进程。这工作当我关闭通过UI按钮,但如果我点击“X”在窗口的右上方
谢谢
答
我使用wxPython的,并面临着同样的问题。我找到的解决方案是将主函数包装在一个sys.exit子句中。 所以我main.py看起来是这样的:
import sys
import wx
class MyFrame(wx.Frame):
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Close Me")
panel = wx.Panel(self)
closeBtn = wx.Button(panel, label="Close")
closeBtn.Bind(wx.EVT_BUTTON, self.onClose)
def onClose(self, event):
self.Destroy()
def main():
app = wx.App(False)
frame = MyFrame()
frame.Show()
app.MainLoop()
if __name__ == '__main__':
sys.exit(main())
完美谢谢你,这个环节的帮助下,我推翻了的closeEvent()方法来清理关闭过程 – Eoin