我有一个带有大约 1000 个 QGraphicsItems 的 QGraphicsScene,它们实际上是物理项目。他们前进的每一帧,检查碰撞,并解决这些碰撞,等等。我真的很想让物理多线程。
我的理解是 QGraphics 类不是线程安全的。意思是,它们只能从主线程调用。这是否迫使我使用信号/槽机制将每帧的最终项目属性(x、y、旋转)发送到主线程,然后使用主线程方法实际更新 QGraphicsItems?或者有没有更简单的方法来做到这一点?
以下只是一个假设:我可以使用 QtConcurrent 在我的 QGraphicsItems 列表上运行一个方法吗?如果我在我的 QGraphicsItem 绘制方法中使用 QMutex 并在我的物理方法中使用 QMutex(这将改变我的 QGraphicsItem 的属性),这是否可以保证在任何时候只有一个线程正在读取/写入每个 QGraphicsItem?