python TypeError:__ init __()需要4个参数(给定1个)

时间:2012-01-26 06:57:20

标签: python qt plugins pyqt4

我正在使用QGIS的python插件。我正在使用python2.5和pyqt4。我的 init 方法需要4个参数。当我试图显示表单时使用 window = DlgQueryBuilder(),m没有传递参数。我的.py代码如下:

class DlgQueryBuilder(QtGui.QMainWindow, Ui_Dialog):
    def __init__(self, db, iface, parent):
        QtGui.QMainWindow.__init__(self)
        Ui_Dialog.__init__(self)
        self.dialog = QtGui.QDialog(parent)

        self.setupUi(self)
        self.db = db 
        # ...

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = DlgQueryBuilder()
    window.show()
    sys.exit(app.exec_())

错误:

Traceback (most recent call last):
File "C:\rt_sql_layer_working\DlgQueryBuilder.py", line 1176, in <module>
window = DlgQueryBuilder();
TypeError: __init__() takes exactly 4 arguments (1 given)

我需要传递的确切论点是什么?

1 个答案:

答案 0 :(得分:3)

您需要传递db方法声明中定义的ifaceparent__init__参数。