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

0 投票
1 回答
3119 浏览
提问于 2025-04-17 11:07

我正在为QGIS开发Python插件。我使用的是Python 2.5和PyQt4。我的init方法需要4个参数。但是当我尝试用以下代码显示窗口时:

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 个回答

3

你需要传入 dbifaceparent 这几个参数,这些参数是在你的 __init__ 方法里定义的。

撰写回答