0

我正在尝试在 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我已经通过消除过程将问题追溯到功能。

如果我QObjectint. 它也与我添加到的属性没有任何关系QObject- 使用全新的开箱即用QObject会导致同样的问题。

函数的这种特定重载似乎在这里发生了一些事情setMapping。关于这里的问题有什么想法吗?

4

1 回答 1

0

感谢@ekhumoro 建议完全跳过 QSignalMapper 方法,只创建一个自定义信号。像魅力一样工作。

于 2017-06-20T16:48:40.293 回答