2016-12-14 2 views
1

pyqt5와 QtDesigner를 사용하여 두 개의 창으로 애플리케이션을 만들고 있습니다. 주 윈도우 "MainWindow.ui"의 버튼은 "age_entry.ui"파일에서 두 번째 윈도우를 열어야하지만 뭔가 빠져있는 것처럼 보입니다.) (유니온 [Qt.WindowFlags, Qt.WindowType = Qt.WindowFlags의 ":pyqt5 및 qt 디자이너로 메인에서 두 번째 창 열기

예외"처리되지 않은 형식 오류 ' 인 QDialog (상위 :는 QWidget = 없음, 플래그를 제 형태의 버튼을 클릭하면이 오류가 발생) : 인수 1 예기치 않은 형식 '부울'여기

메인 창에 대한 코드가 있습니다! 사전에

# -*- coding: utf-8 -*- 

import sys 
from PyQt5 import uic, QtWidgets 


Ui_MainWindow, QtBaseClass = uic.loadUiType("MainWindow.ui") 
LandingPageUI, LandingPageBase = uic.loadUiType("age_entry.ui") 

class MyApp(QtWidgets.QMainWindow, Ui_MainWindow): 

    def __init__(self): 
     QtWidgets.QMainWindow.__init__(self) 
     Ui_MainWindow.__init__(self) 
     self.setupUi(self) 

     def showAgeEntryForm(self): 
      self.child_win = AgeEntryForm(self) 
      self.child_win.show()    

     self.btnOpenAges.clicked.connect(showAgeEntryForm)    


class AgeEntryForm(LandingPageBase, LandingPageUI): 
    def __init__(self, parent=None): 
     LandingPageBase.__init__(self, parent) 
     self.setupUi(self)    



if __name__ == "__main__": 
    app=QtWidgets.QApplication.instance() 
    if not app: 
     app = QtWidgets.QApplication(sys.argv) 

    window = MyApp() 
    window.show() 
    sys.exit(app.exec_()) 

감사를

# -*- coding: utf-8 -*- 

# Form implementation generated from reading ui file 'MainWindow.ui' 
# 
# Created by: PyQt5 UI code generator 5.7 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt5 import QtCore, QtGui, QtWidgets 

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     MainWindow.setObjectName("MainWindow") 
     MainWindow.resize(526, 338) 
     self.centralwidget = QtWidgets.QWidget(MainWindow) 
     self.centralwidget.setObjectName("centralwidget") 
     self.label_9 = QtWidgets.QLabel(self.centralwidget) 
     self.label_9.setGeometry(QtCore.QRect(90, 10, 341, 41)) 
     font = QtGui.QFont() 
     font.setPointSize(16) 
     font.setBold(True) 
     font.setWeight(75) 
     self.label_9.setFont(font) 
     self.label_9.setObjectName("label_9") 
     self.btnOpenAges = QtWidgets.QPushButton(self.centralwidget) 
     self.btnOpenAges.setGeometry(QtCore.QRect(130, 90, 181, 61)) 
     self.btnOpenAges.setObjectName("btnOpenAges") 
     MainWindow.setCentralWidget(self.centralwidget) 
     self.menubar = QtWidgets.QMenuBar(MainWindow) 
     self.menubar.setGeometry(QtCore.QRect(0, 0, 526, 21)) 
     self.menubar.setObjectName("menubar") 
     MainWindow.setMenuBar(self.menubar) 
     self.statusbar = QtWidgets.QStatusBar(MainWindow) 
     self.statusbar.setObjectName("statusbar") 
     MainWindow.setStatusBar(self.statusbar) 

     self.retranslateUi(MainWindow) 
     QtCore.QMetaObject.connectSlotsByName(MainWindow) 

    def retranslateUi(self, MainWindow): 
     _translate = QtCore.QCoreApplication.translate 
     MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 
     self.label_9.setText(_translate("MainWindow", "Ageing Session Management")) 
     self.btnOpenAges.setText(_translate("MainWindow", "Enter Ages")) 

그리고 age_entry.ui 당신의 들여 쓰기가 잘못

# -*- coding: utf-8 -*- 

# Form implementation generated from reading ui file 'age_entry.ui' 
# 
# Created by: PyQt5 UI code generator 5.7 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt5 import QtCore, QtGui, QtWidgets 

class Ui_Dialog(object): 
    def setupUi(self, Dialog): 
     Dialog.setObjectName("Dialog") 
     Dialog.resize(350, 189) 
     self.label_13 = QtWidgets.QLabel(Dialog) 
     self.label_13.setGeometry(QtCore.QRect(90, 20, 451, 61)) 
     font = QtGui.QFont() 
     font.setPointSize(14) 
     self.label_13.setFont(font) 
     self.label_13.setObjectName("label_13") 

     self.retranslateUi(Dialog) 
     QtCore.QMetaObject.connectSlotsByName(Dialog) 

    def retranslateUi(self, Dialog): 
     _translate = QtCore.QCoreApplication.translate 
     Dialog.setWindowTitle(_translate("Dialog", "Dialog")) 
     self.label_13.setText(_translate("Dialog", "Age Entry Form")) 
+0

MainWindow.ui 및 age_entry.ui 예를 게시 할 수 있습니까? 예 : Minimal, Complete 및 Verifiable 예제는 http://stackoverflow.com/help/mcve를 참조하십시오. –

+0

SO 질문에 파일을 포함 할 수있는 방법이 있습니까? – jshort

+0

질문에 소스 코드의 최소 예를 코드로 포함 할 수 있습니까? –

답변

1

두 가지 문제 :다음은 MainWindow를 코드 형태로 age_entry 파일입니다. 둘째로 실종 된 자아. showAgeEntryForm에. 이것을 시도하십시오 :

def __init__(self): 
    QtWidgets.QMainWindow.__init__(self) 
    Ui_MainWindow.__init__(self) 
    self.setupUi(self) 
    self.btnOpenAges.clicked.connect(self.showAgeEntryForm) 

def showAgeEntryForm(self): 
    self.child_win = AgeEntryForm(self) 
    self.child_win.show() 
+0

Thanks @ Dan-Dev! 그게 속임수 였어. 전에 제대로 상속받지 못했습니다. – jshort