我想在QGraphicsItem中添加信号/槽,这样我就可以从另一个线程到达QGraphicsItemObjects.我知道有两个选项:使用QGraphicsObject或从QObject和QGraphicsItem继承.
这被认为是缓慢的.根据stackoverflow 上的这个答案,QGraphicsObjects由于它们的实现而很慢.当我查看QGraphicsObjects的源代码时,我可以看到根据对象所做的更改发出了很多信号.对我来说,这似乎是QGraphicsObjects缓慢的原因,但我认为第二种解决方案可以避免这种性能上升(如果真的是一次).
当构造一个继承自QObject和QGraphicsItem的类时,你似乎得到了QGraphicsObject最有趣的功能减去性能命中:你可以在你的类中定义槽和发出信号,但是你不能继承QGraphicsObject的默认实现.你会不断发出你可能不感兴趣的变化的信号.你现在能够发出信号,但不必担心你不关心的事情会发出信号(x值变化会在QGraphicsObject中发出信号但是不在这个解决方案中).