0

在旧式信号和插槽中,我可以像这样将自己的参数传递给处理程序。(在这种情况下,我传递了一个 Widget 和一个对 self 的引用)

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)

有没有一种方法可以让我以新样式的 Signals 和 Slots 传递我自己的参数,并且理想情况下还保留对 QTableWidgetItem 的引用?

4

1 回答 1

1

是的,您可以使用functools模块

例子:

import functools

然后你可以使用你的参数:

form.tableScores.itemChanged.connect(functools.partial(itemChanged, param1, param2, param3, [...]))
于 2013-07-01T08:24:04.640 回答