2017-12-02 3 views
0

würde Ich mag eine Schaltfläche in einem Fenster drücken und das Fenster zu schließen, danach ein neues Fenster öffnenSchließen und Öffnen neue Fenster PYQT5

Wie kann ich es tun?

versuchte ich es schon, aber es sendet diese Meldung auf die Konsole:

QCoreApplication :: exec: Die Ereignisschleife bereits

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_()) 

Mein Hauptproblem ausgeführt ist, wenn ich die Taste gedrückt, kann ich‘ t Öffnen Sie das neue Fenster

+0

zeigen Sie Ihren Code. – eyllanesc

+0

Um Ihre Frage zu verbessern, sollten Sie den Inhalt lesen, der den folgenden Link zeigt: [ask], Die Ursache des Problems kann verschiedene Ursachen haben und wir wollen keine Zeit mit Ratespielen verschwenden. – eyllanesc

+0

Mein Problem ist, dass wenn ich den Knopf Z80 drücke und self.IniciarInterfaz anrufe, kann es mein neues Fenster nicht öffnen –

Antwort

0

Es kann nur eine QApplication innerhalb der PyQt Anwendung geben, also wenn Sie es bereits erstellt haben, tun Sie es nicht noch einmal.

Ein weiteres Problem ist, dass die Variablen nur innerhalb des Kontextes existieren, in Ihrem Fall mainWindow, also am Ende der Funktion StartInterface wird diese Variable zu eliminieren und das Fenster, die Lösung ist es, das mainWindow Mitglied der Klasse zu machen Der Kontext wird die Klasse und nicht mehr die Funktion sein, also wird es korrekt bleiben.

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

ich danke Ihnen noch einmal –

Verwandte Themen