【发布时间】:2012-01-26 06:57:20
【问题描述】:
我正在使用 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)
我需要传递什么参数??
【问题讨论】:
-
发布 Python 代码时请注意缩进。这对代码的含义非常重要。我试图修复它;我想这就是你的意思。
-
...你是认真的吗???它就在您的
__init__()中,用于您的DlgQueryBuilder课程。传入你编写该类时期望得到的内容(self除外,Python 会自动传入)。 -
问题是你不知道这些论点应该是什么?
-
是的..我试过 window = DlgQueryBuilder('postgres','')...m 也在做 RnD..iface 是什么意思?
-
你也可以在你的
__init__中设置默认值,如果你不想传递任何东西(除了自己)。像def __init__(self, db=None, iface=None, parent=None):这样的东西显然不要使用任何东西,使用有意义的东西