2017-12-02 2 views
0

창에서 버튼을 눌러 창을 닫은 후 새 창을 엽니 다.닫기 및 새 창 열기 PYQT5

어떻게 할 수 있습니까?

나는 이미 그것을 시도했지만이 메시지를 콘솔에 보냅니다

QCoreApplication :: 간부 : 이벤트 루프가 이미 실행되고

class Window(QWidget): 
    def __init__(self,parent = None): 
     super().__init__(parent) 
     self.title = 'pySim Z-eighty' 
     self.left = 0 
     self.top = 0 
     self.width = 1200 
     self.height = 3000 
     self.initUI() 

    def initUI(self): 
     self.setWindowTitle(self.title) 
     self.setGeometry(self.left, self.top, self.width, self.height) 

     self.button = QPushButton("Z80") 
     self.button1 = QPushButton() 
     self.button2 = QPushButton() 
     self.container = QWidget() 
     self.layout = QGridLayout() 
     self.layout.addWidget(self.button1, 1, 0) 
     self.layout.addWidget(self.button, 1, 1) 
     self.layout.addWidget(self.button2, 1, 2) 
     self.container.setLayout(self.layout) 
     self.layoutPrincipal = QBoxLayout(0) 
     self.layoutPrincipal.addWidget(self.container) 
     self.setLayout(self.layoutPrincipal) 
     self.button.pressed.connect(self.IniciarInterfaz) 

    def IniciarInterfaz(self): 
     self.hide() 
     app = QApplication(sys.argv) 
     ex = mainWindow() 
     ex.setStyleSheet("background-color: #fff") 
     ex.show() 
     sys.exit(app.exec_()) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = Window() 
    ex.show() 
    sys.exit(app.exec_()) 

내가 버튼을 내가 할 수있는 '을 누르면 내 주요 문제 t 새 창을여십시오

+0

코드를 표시하십시오. – eyllanesc

+0

질문을 향상 시키려면 다음 링크를 보여주는 내용을 읽어야합니다. [ask], 문제의 원인은 여러 원인에 기인 할 수 있으며 추측에 시간을 낭비하고 싶지는 않습니다. – eyllanesc

+0

제 문제는 버튼 Z80을 누르고 self.IniciarInterfaz를 호출하면 내 새 창을 열 수 없다는 것입니다. –

답변

0

응용 프로그램 내에 QApplication이 하나만있을 수 있으므로 이미 작성한 경우 다시 작성하지 마십시오.

또 다른 문제는 변수 mainWindow에서 컨텍스트 내에서만 존재하므로 StartInterface 함수의 끝에서이 변수와 창을 제거합니다. 해결책은 클래스의 mainWindow 멤버를 만드는 것입니다. 컨텍스트는 클래스가되고 더 이상 함수가 아니므로 올바르게 유지됩니다.

def IniciarInterfaz(self): 
    self.hide() 
    self.ex = mainWindow() 
    self.ex.setStyleSheet("background-color: #fff") 
    self.ex.show() 
+0

다시 한번 감사드립니다. –