我使用pyqt5和QtDesigner創建了兩個窗口的應用程序。主窗口「MainWindow.ui」上的按鈕應該從文件「age_entry.ui」打開第二個窗口,但我似乎缺少一些東西。點擊第一個窗體上的按鈕產生這個錯誤「:用pyqt5和qt設計器打開第二個窗口
異常 」未處理的類型錯誤「 QDialog的(父:QWidget的=無,國旗:聯盟[Qt.WindowFlags,Qt.WindowType] = Qt.WindowFlags() ):參數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_())
在此先感謝
這裏是主窗口,並以代碼的形式age_entry文件:
# -*- 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"))
你可以發表一個例子MainWindow.ui和age_entry.ui,即一個最小,完整和可驗證的例子請參閱http://stackoverflow.com/help/mcve? –
有沒有辦法在SO問題中包含文件? – jshort
您可以在代碼中包含問題源代碼的最小示例嗎? –