2017-12-27 21 views
0

나는 버튼을 클릭 할 때 다른 윈도우를 여는 QMainWindow 윈도우를 만들기 위해 PyQT를 사용하고있다. 내 문제는 내가 팝업 메인 창을 닫아도 팝업 창이 표시됩니다. 이것은 here으로 게시되었지만 C++로 작성된 것과 매우 유사하며 파이썬 만 할 수 있습니다. 파이썬에서 어떻게 대답을 구현할 수 있습니까? 여기 내 코드는 다음과 같습니다.메인 윈도우가 닫힌 후 팝업 창이 자동으로 닫히는 방법

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

HelpWindow 객체는, setParent MainWindow를 – Taz742

+0

을 당신이 어떻게 나에게 미안 보여줄 수있어 해? 나는 수업에 대해 배우기 시작했다. – DorkOrc

답변

1

(C++)에서 위젯 객체를 mainWindow 객체로 설정할 수 있습니다. 부모가 멸망 될 때 그는 모든 자녀를 좇을 것입니다.

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

내가이 PyQt는을 만들 뜨거운 잘 모릅니다하지만 당신은 문서를 읽을 수 있습니다 : 예를 들어

http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#setParent