我正在尝试在PyQt中设置信号槽布置,其中信号传输大量信息。我想通过将要传输的各种信息设置为QObject
的属性,使用QObject
作为载体。从理论上讲,这应该有效 - 有一个QSignalMapper.setMapping()
重载,它将发送者和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
函数的特定重载。关于这个问题的任何想法?
答案 0 :(得分:0)
感谢@ ekhumoro建议完全跳过QSignalMapper方法并创建一个自定义信号。工作就像一个魅力。