2016-06-19 2 views
0

Я сделал несколько графический интерфейс на Qt Designer и хотите, чтобы соединить их с помощью нажимной кнопкиКак открыть другой gui кнопкой?

Если я нажимаю кнопку в моей основной гуй я хочу открыть второй Gui

SecDialog мой второй графический интерфейс и MainWindow является главным gui

В чем проблема?

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

ответ

0

Вам нужно положить открытия и закрытия скобки после 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_()) 
Смежные вопросы