Python TypeError: __init __ () принимает ровно 4 аргумента (1 дано) - PullRequest
0 голосов
/ 26 января 2012

Я работаю с плагинами Python для QGIS. Я использую 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 Ответ

3 голосов
/ 26 января 2012

Вам необходимо передать аргументы db, iface и parent, как определено в объявлении __init__ метода.

...