Python TypeError:必须使用Ui_表单实例作为第一个参数调用未绑定的方法setupUi()(改为使用QDialog实例)

Python TypeError:必须使用Ui_表单实例作为第一个参数调用未绑定的方法setupUi()(改为使用QDialog实例),python,qt,Python,Qt,这是我的主程序,单击按钮后将打开新窗口,这里我想打开新窗口,但它给出了类型错误: from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_NnAdcModeling(object): def setupUi(self, NnAdcModeling): NnAdcModeli

这是我的主程序,单击按钮后将打开新窗口,这里我想打开新窗口,但它给出了类型错误:

from PyQt4 import QtCore, QtGui

try:
  _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
  _fromUtf8 = lambda s: s

class Ui_NnAdcModeling(object):
  def setupUi(self, NnAdcModeling):
    NnAdcModeling.setObjectName(_fromUtf8("NnAdcModeling"))
    NnAdcModeling.resize(612, 316)
    self.centralWidget = QtGui.QWidget(NnAdcModeling)
    self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
    self.label = QtGui.QLabel(self.centralWidget)
    self.label.setGeometry(QtCore.QRect(10, 14, 601, 20))
    self.label.setObjectName(_fromUtf8("label"))
    self.layoutWidget = QtGui.QWidget(self.centralWidget)
    self.layoutWidget.setGeometry(QtCore.QRect(21, 214, 570, 29))
    self.layoutWidget.setObjectName(_fromUtf8("layoutWidget"))
    self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget)
    self.horizontalLayout.setMargin(0)
    self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
    self.pushButton_2 = QtGui.QPushButton(self.layoutWidget)
    self.pushButton_2.setMinimumSize(QtCore.QSize(201, 0))
    self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
    self.horizontalLayout.addWidget(self.pushButton_2)
    NnAdcModeling.setCentralWidget(self.centralWidget)
    self.menuBar = QtGui.QMenuBar(NnAdcModeling)
    self.menuBar.setGeometry(QtCore.QRect(0, 0, 612, 25))
    self.menuBar.setObjectName(_fromUtf8("menuBar"))
    NnAdcModeling.setMenuBar(self.menuBar)
    self.mainToolBar = QtGui.QToolBar(NnAdcModeling)
    self.mainToolBar.setObjectName(_fromUtf8("mainToolBar"))
    NnAdcModeling.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
    self.statusBar = QtGui.QStatusBar(NnAdcModeling)
    self.statusBar.setObjectName(_fromUtf8("statusBar"))
    NnAdcModeling.setStatusBar(self.statusBar)

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

    self.pushButton_2.clicked.connect(self.showNnInput)

  def retranslateUi(self, NnAdcModeling):
    NnAdcModeling.setWindowTitle(QtGui.QApplication.translate("NnAdcModeling", "NnAdcModeling", None, QtGui.QApplication.UnicodeUTF8))
    self.pushButton_2.setText(QtGui.QApplication.translate("NnAdcModeling", "New Window", None, QtGui.QApplication.UnicodeUTF8))

  def showNnInput(self):
    from nninput import Ui_NnInput
    ui = Ui_NnInput
    ui.setupUi(QtGui.QDialog())
    ui.NnInput.exec_()


if __name__ == "__main__":
  import sys
  app = QtGui.QApplication(sys.argv)
  NnAdcModeling = QtGui.QMainWindow()
  ui = Ui_NnAdcModeling()
  ui.setupUi(NnAdcModeling)
  NnAdcModeling.show()
  sys.exit(app.exec_())
我的另一个类Ui_n输入是:

from PyQt4 import QtCore, QtGui

try:
  _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
  _fromUtf8 = lambda s: s

class Ui_NnInput(object):
  def setupUi(self, NnInput):
    self.NnInput=NnInput
    NnInput.setObjectName(_fromUtf8("NnInput"))
    NnInput.resize(532, 180)
    self.label = QtGui.QLabel(NnInput)
    self.label.setGeometry(QtCore.QRect(120, 10, 301, 20))
    self.label.setMaximumSize(QtCore.QSize(301, 20))
    self.label.setObjectName(_fromUtf8("label"))
    self.layoutWidget = QtGui.QWidget(NnInput)
    self.layoutWidget.setGeometry(QtCore.QRect(20, 130, 491, 29))
    self.layoutWidget.setObjectName(_fromUtf8("layoutWidget"))
    self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget)
    self.horizontalLayout_3.setMargin(0)
    self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
    self.pushButton = QtGui.QPushButton(self.layoutWidget)
    self.pushButton.setMaximumSize(QtCore.QSize(51, 27))
    self.pushButton.setObjectName(_fromUtf8("pushButton"))
    self.horizontalLayout_3.addWidget(self.pushButton)
    self.pushButton_2 = QtGui.QPushButton(self.layoutWidget)
    self.pushButton_2.setMaximumSize(QtCore.QSize(151, 27))
    self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
    self.horizontalLayout_3.addWidget(self.pushButton_2)
    self.pushButton_4 = QtGui.QPushButton(self.layoutWidget)
    self.pushButton_4.setMaximumSize(QtCore.QSize(41, 27))
    self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
    self.horizontalLayout_3.addWidget(self.pushButton_4)
    self.label_3 = QtGui.QLabel(NnInput)
    self.label_3.setGeometry(QtCore.QRect(10, 40, 161, 17))
    self.label_3.setMaximumSize(QtCore.QSize(161, 17))
    self.label_3.setObjectName(_fromUtf8("label_3"))
    self.layoutWidget_2 = QtGui.QWidget(NnInput)
    self.layoutWidget_2.setGeometry(QtCore.QRect(120, 70, 252, 25))
    self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2"))
    self.horizontalLayout_2 = QtGui.QHBoxLayout(self.layoutWidget_2)
    self.horizontalLayout_2.setMargin(0)
    self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
    self.horizontalLayout = QtGui.QHBoxLayout()
    self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
    self.label_2 = QtGui.QLabel(self.layoutWidget_2)
    self.label_2.setMaximumSize(QtCore.QSize(101, 17))
    self.label_2.setObjectName(_fromUtf8("label_2"))
    self.horizontalLayout.addWidget(self.label_2)
    self.lineEdit = QtGui.QLineEdit(self.layoutWidget_2)
    self.lineEdit.setMaximumSize(QtCore.QSize(71, 21))
    self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
    self.horizontalLayout.addWidget(self.lineEdit)
    self.horizontalLayout_2.addLayout(self.horizontalLayout)
    self.pushButton_3 = QtGui.QPushButton(self.layoutWidget_2)
    self.pushButton_3.setMaximumSize(QtCore.QSize(71, 21))
    self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
    self.horizontalLayout_2.addWidget(self.pushButton_3)
    self.lineEdit_2 = QtGui.QLineEdit(NnInput)
    self.lineEdit_2.setGeometry(QtCore.QRect(170, 40, 351, 21))
    self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))

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

  def retranslateUi(self, NnInput):
    NnInput.setWindowTitle(QtGui.QApplication.translate("NnInput", "Form", None, QtGui.QApplication.UnicodeUTF8))
    self.label.setText(QtGui.QApplication.translate("NnInput", "", None, QtGui.QApplication.UnicodeUTF8))
    self.pushButton.setText(QtGui.QApplication.translate("NnInput", "Done", None, QtGui.QApplication.UnicodeUTF8))
    self.pushButton_2.setText(QtGui.QApplication.translate("NnInput", "Show Input Pattern", None, QtGui.QApplication.UnicodeUTF8))
    self.pushButton_4.setText(QtGui.QApplication.translate("NnInput", "Exit", None, QtGui.QApplication.UnicodeUTF8))
    self.label_3.setText(QtGui.QApplication.translate("NnInput", "Path for Input Pattern :", None, QtGui.QApplication.UnicodeUTF8))
    self.label_2.setText(QtGui.QApplication.translate("NnInput", "Target Value :", None, QtGui.QApplication.UnicodeUTF8))
    self.lineEdit.setText(QtGui.QApplication.translate("NnInput", "0.000000", None, QtGui.QApplication.UnicodeUTF8))
    self.pushButton_3.setText(QtGui.QApplication.translate("NnInput", "Generate", None, QtGui.QApplication.UnicodeUTF8))
    self.lineEdit_2.setText(QtGui.QApplication.translate("NnInput", "", None, QtGui.QApplication.UnicodeUTF8))
但在运行它之后,它给出了以下错误。请建议我的代码中有什么错误,修改什么来纠正它。接下来的错误是:

Traceback (most recent call last):
File "nnadcmodeling2.py", line 51, in showNnInput
  ui.setupUi(QtGui.QDialog())
TypeError: unbound method setupUi() must be called with Ui_NnInput instance as first      argument (got QDialog instance instead)

代码太多了

但是Ui_NnAdcModeling.shownInput中的这一行:

ui = Ui_NnInput
应该是

ui = Ui_NnInput()

这样您就可以实例化一个UI输入对象,而不仅仅是创建一个类的引用。

那里的代码太多了

但是Ui_NnAdcModeling.shownInput中的这一行:

ui = Ui_NnInput
应该是

ui = Ui_NnInput()

这样您就可以实例化一个UI输入对象,而不仅仅是创建一个类的引用。

。。。这是个愚蠢的问题,thnxOh。。。这是个愚蠢的问题,thnx