0

古いスタイルのシグナルとスロットでは、このように独自のパラメーターをハンドラーに渡すことができます。(この場合、ウィジェットと自己への参照を渡しています)

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 への参照も保持する方法はありますか?

4

1 に答える 1

1

はい、functoolsモジュールを使用できます

例:

import functools

次に、パラメーターを次のように使用できます。

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