基于对象的QSignalMapp出现问题

2024-04-20 01:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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函数的这个特定的重载。你对这里的问题有什么看法吗?你知道吗


Tags: 函数selfreport信息属性信号connecttimeline