2016-04-22 8 views
0

私はcx_Freezeでpythonプログラムのexeファイルを作成しました。
私はPyQt4を使ってGUIを作成しました。PyQt4 GUI終了後にコンソールを閉じる

完全に開き、最初に空のコンソールを開き、次にGUIを開きます。
しかし、プログラムを実行した後にGUIを閉じるかどうかを問わず、コンソールは開いたままです。コンソールの任意の部分をクリックすると、エラーポップアップが表示されます。「MyProgram has stopped working」

これはPythonインストール(3.4.4)でシステム(Win7-64bit)でテストされています。 Pythonはありません(Win7-64bit)。

GUIを閉じた後にこのコンソールを閉じる方法はありますか?それとももっと良いですか?どのようにコンソールを閉じるのですか?

devenvを
のPython:3.4
OS:Windows 7の

編集

私は私のclose_application方法で、私はそのラインを含め.....周りの仕事を見つけることができましたpsutilを使ってプロセスを終了させて​​ください。私はUIボタンからクローズではなく、私は、ウィンドウの右上にある「X」をクリックすると

は、私はあなたが「×」トップをクリックするイベントをリンクする必要があると思うあなた

答えて

1

ありがとうとき、これは動作します右ボタンを押してプロセスの行を削除します。

このトピックはお役に立ちましたか? PySide/PyQt detect if user trying to close window

+0

パーフェクトこのリンクが助けた、ありがとう、私はクローズ処理をクリーンアップするためにcloseEvent()メソッドをオーバーライドします – Eoin

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()) 
関連する問題