2017-12-28 7 views
1

PyQt를 사용하고 있는데 클릭 신호 후 QDialog 창을 생성하는 QMainWindow가 있습니다. QMainWindow를 닫으면이 QDialog가 사라집니다. 나는이 문제의 문서화와 C++ 버전을 많이 만들 수 없다. Qt는에서QMainWindow가 닫힌 경우 QDialog를 닫는 방법

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

class App: 

    def mainGui(self): 
     self.mainWin = QMainWindow() 
     self.mainWin.setGeometry(200,200,500,432) 
     self.mainWin.show() 
     mainMenu = self.mainWin.menuBar() 
     mainMenu.setNativeMenuBar(False) 
     aboutMenu = mainMenu.addMenu('A&bout') 
     helpButton = QAction(QIcon(),'Help',self.mainWin) 
     helpButton.setShortcut('F4') 
     helpButton.triggered.connect(self.helpPopup) 
     aboutMenu.addAction(helpButton) 

    def helpPopup(self): 
     self.popup = QDialog() 
     self.popup.setWindowTitle('Help') 
     self.popup.setGeometry(800,200,300,500) 
     self.popup.show() 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    a = App() 
    a.mainGui() 
    sys.exit(app.exec_()) 

답변

1

, 부모가 자식을 죽는 경우에 따라서도 PyQt는에, 너무, 너무에만 self.mainWin에 인 QDialog의 부모로 전달할 :

self.popup = QDialog(self.mainWin) 
+0

감사합니다 아래는 코드입니다. 부모 개체와 자식 개체는 내가 여기서 찾고있는 개념입니다. 또한'mainGui()'메쏘드 안에'app = QApplication (sys.argv)'와'sys.exit (app.exec _())'를 넣을 필요가있었습니다. 그렇지 않으면 부모 창을 닫은 후에도 자식 창이 열리고 응답하지 않습니다. 왜 그런지 말해 줄 수 있니? – rej

+0

이상하게 생각합니다. 방금 수정을가했는데 정상적으로 작동합니다. 버그가있는 이전 버전 일 수 있습니다. – eyllanesc

+0

Python3.5 및 PyQt4를 사용 중입니다. 어쨌든 다시 한번 감사드립니다. – rej

관련 문제