Python 2.7 PyQt新型信号和;插槽-Can';t通过参数

Python 2.7 PyQt新型信号和;插槽-Can';t通过参数,python-2.7,pyqt,signals-slots,Python 2.7,Pyqt,Signals Slots,在老式的信号和插槽中,我可以像这样将自己的参数传递给处理程序。(在本例中,我将传递一个小部件和对self的引用) 唯一的缺点是我丢失了QTableWidgetItem数据,但是我可以通过表单参数中的小部件引用来获得它。关键是我需要访问这个方法提供给我的obj 但在新的风格中,我犯了一个错误 form.tableScores.itemChanged.connect(itemChanged(form,obj)) 我似乎仅限于这种格式 form.tableScores.itemChanged.con

在老式的信号和插槽中,我可以像这样将自己的参数传递给处理程序。(在本例中,我将传递一个小部件和对self的引用)

唯一的缺点是我丢失了QTableWidgetItem数据,但是我可以通过表单参数中的小部件引用来获得它。关键是我需要访问这个方法提供给我的obj

但在新的风格中,我犯了一个错误

form.tableScores.itemChanged.connect(itemChanged(form,obj))
我似乎仅限于这种格式

form.tableScores.itemChanged.connect(itemChanged)
是否有一种方法可以在新样式的信号和插槽中传递自己的参数,理想情况下还可以保留对QTableWidgetItem的引用?

是的,您可以使用functools模块

例如:

import functools
然后,您可以将参数用于:

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