2017-12-27 29 views
0

私は、ボタンをクリックすると別のウィンドウを開くQMainWindowウィンドウを作成するためにPyQTを使用しています。私の問題は、ポップアップウィンドウが表示されたままになっても、それを生成したメインウィンドウを閉じても残っているということです。これはhereがポストされたものと非常によく似ていますが、C++で書かれており、私はPythonだけしかできません。 Pythonで答えを実装するにはどうすればよいですか?私のコードは以下の通りです:メインウィンドウを閉じた後にポップアップウィンドウを自動的に閉じる方法

from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
import sys 

class Pycryptor: 

    def mainGui(self): 
     app = QApplication(sys.argv) 
     #MainWindow 
     self.mainWin = QMainWindow() 
     self.mainWin.setGeometry(200,200,500,432) 
     self.mainWin.show() 
     #MenuBar 
     mainMenu = self.mainWin.menuBar() 
     mainMenu.setNativeMenuBar(False) 
     aboutMenu = mainMenu.addMenu('A&bout') 
     helpButton = QAction(QIcon(),'Help',self.mainWin) 
     helpButton.triggered.connect(self.helpPopup) 
     aboutMenu.addAction(helpButton) 
     sys.exit(app.exec_()) 

    def helpPopup(self): 
     self.popup = HelpWindow() 
     self.popup.setGeometry(800,200,300,500) 
     self.popup.show() 

class HelpWindow(QWidget): 
    def __init__(self): 
     QWidget.__init__(self) 

if __name__ == '__main__': 
    p = Pycryptor() 
    p.mainGui() 
+0

はのsetParentメインウィンドウ – Taz742

+0

オブジェクトHelpWindowごめんなさいあなたは私を見ることができますそれ?私はクラスについて学び始めたばかりです – DorkOrc

答えて

1

C++では、あなたのウィジェットオブジェクトをmainWindowオブジェクトに設定することができます。親が滅ぼされるとき、彼はすべての子供たちに従うでしょう。例えば

:私はこのPyQtはを作成するために、ホット知っていますが、ドキュメントを読むことができますいけない

void MainWindow::on_pushButton_clicked() 
{ 
    Form *fm = new Form(); 
    fm->setParent(this); 
    fm->setWindowFlags(Qt::Window); 
    fm->show(); 
} 

:どのように http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#setParent

関連する問題