2013-06-20 28 views
0

在旧式的信号和插槽中,我可以将我自己的参数传递给像这样的处理程序。 (在这种情况下,我路过一个Widget和自我参考)PyQt新风格的信号和插槽 - 无法传递参数

obj.connect(form.tableScores,QtCore.SIGNAL("itemChanged(QTableWidgetItem*)"),lambda: itemChanged(form,obj)) 

唯一的缺点是,我失去了QTableWidgetItem数据,但我可以通过形式参数的小部件引用得到这个。关键是我需要访问这个方法给我的obj。

但在新风格中,我收到一个错误。

form.tableScores.itemChanged.connect(itemChanged(form,obj)) 

我似乎仅限于这种格式

form.tableScores.itemChanged.connect(itemChanged) 

有没有办法,我可以通过我自己的参数在新的风格信号和槽和理想还保留QTableWidgetItem参考的方法吗?

回答

1

是的,你可以使用functools模块

例如:

form.tableScores.itemChanged.connect(functools.partial(itemChanged, param1, param2, param3, [...])) 

import functools 

然后你可以用用你的参数