信号が多くの情報を送信する PyQt で信号スロット配置を設定しようとしています。QObject
送信したい各種情報を の属性として設定し、 をキャリアとして利用したいQObject
。理論的には、これは機能するはずです。引数としてQSignalMapper.setMapping()
送信者と a を取るオーバーロードがあります。QObject
削減されたコードは次のとおりです。
self.mapper = QtCore.QSignalMapper()
self.timeline.finished.connect(self.mapper.map)
carrier = QtCore.QObject()
carrier.contents = (item1, item2)
self.mapper.setMapping(self.timeline, carrier)
self.portalMapper.mapped.connect(self.report)
def report(self, carrierObject):
print 'Triggered'
残念ながら、うまくいきません。setMapping
消去法で問題を関数までたどりました。
QObject
を で切り替えると、この同じスキームがうまく機能しint
ます。また、私が追加した属性とは何の関係もありませんQObject
-すぐに使える新しいものを使用するQObject
と、同じ問題が発生します。
関数のこの特定のオーバーロードで何かが起こっているようsetMapping
です。ここで問題が何であるかについてのアイデアはありますか?