我试图在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
函数。你知道吗
如果我用int
切换出QObject
,同样的方案也会很好地工作。它也与我添加到QObject
的属性没有任何关系-使用新的开箱即用的QObject
会导致相同的问题。你知道吗
似乎这里发生了一些事情,setMapping
函数的这个特定的重载。你对这里的问题有什么看法吗?你知道吗
感谢@ekhumoro的建议,完全跳过QSignalMapper方法,只创建一个自定义信号。很有魅力。你知道吗
相关问题 更多 >
编程相关推荐