PyQt4 GUI关闭后关闭打开控制台

时间:2016-04-22 10:43:48

标签: python-3.x pyqt4 console-application cx-freeze

我用cx_Freeze创建了一个python程序的exe 我使用PyQt4创建了一个GUI。

它打开完美,首先是空控制台,然后是GUI 但是,当我关闭GUI(运行程序或不运行程序)后,控制台仍保持打开状态。如果我点击控制台的任何部分,它会弹出错误信息“MyProgram已停止工作”

这已在使用python安装(3.4.4)的系统(Win7-64bit)和另一个没有python(Win7-64bit)的系统上进行了测试。

有没有办法可以在GUI关闭后关闭此控制台?或者更好...... 如何关闭控制台?

devenv的
Python:3.4
操作系统:Windows 7

修改

我设法找到了一个工作.....在我的close_application方法中,我包含了使用psutil来杀死进程的行。这在我关闭UI按钮时有效,但如果我单击窗口右上角的“x”则不行

谢谢

2 个答案:

答案 0 :(得分:1)

我认为你需要链接点击" x"带有杀戮过程线的右上角按钮。

这个主题可能会有所帮助吗? PySide / PyQt detect if user trying to close window

答案 1 :(得分:0)

我正在使用wxPython并面临同样的问题。我发现的解决方案是将main函数包装在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())