2016-06-19 9 views
0

Ich habe mehrere gui von qt-Designer und wollen, dass sie Taste durch Push-to-connectWie kann ich eine andere GUI per Knopfdruck öffnen?

Wenn ich Knopf in meinem Haupt-gui schieben möchte ich die zweite gui öffnen

SecDialog ist meine zweite gui und Mainwindow ist die Haupt gui

Was ist das Problem?

import sys 
from PyQt4 import QtCore, QtGui 
from mainwindow import Ui_MainWindow 
from secdialog import Ui_SecDialog 

class SecDialog(QtGui.QDialog, Ui_SecDialog): 
    def __init__(self, parent=None): 
     QtGui.QDialog.__init__(self, parent) 
     self.setupUi(self) 

class MainWindow(QtGui.QMainWindow, Ui_MainWindow): 
    def __init__(self, parent=None): 
     QtGui.QMainWindow.__init__(self, parent) 
     self.setupUi(self) 
     self.pushButton.clicked.connect(self.handleMainWindow) 

    def handleMainWindow(self): 
     window = SecDialog(self) 
     window.show 

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

Antwort

0

Sie müssen Öffnung setzen und zu schließen Klammern nach window.show:

import sys 
from PyQt4 import QtCore, QtGui 
from mainwindow import Ui_MainWindow 
from secdialog import Ui_SecDialog 

class SecDialog(QtGui.QDialog, Ui_SecDialog): 
    def __init__(self, parent=None): 
     QtGui.QDialog.__init__(self, parent) 
     self.setupUi(self) 

class MainWindow(QtGui.QMainWindow, Ui_MainWindow): 
    def __init__(self, parent=None): 
     QtGui.QMainWindow.__init__(self, parent) 
     self.setupUi(self) 
     self.pushButton.clicked.connect(self.handleMainWindow) 

    def handleMainWindow(self): 
     window = SecDialog(self) 
     window.show() # <-- show is a method, therefore you need parentheses after it to call it 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    ex = MainWindow()   
    ex.show() 
    sys.exit(app.exec_()) 
Verwandte Themen