実際には物理アイテムである約1000個のQGraphicsItemsを持つQGraphicsSceneがあります。フレームごとに進み、衝突をチェックし、それらの衝突を解決します。物理演算をマルチスレッドにしたいと本当に思っています。
QGraphics クラスがスレッドセーフではないことは、私の理解です。つまり、メインスレッドからのみ呼び出すことができます。これにより、各フレームの最終アイテム プロパティ (x、y、回転) をシグナル/スロット メカニズムを使用してメイン スレッドに送信し、メイン スレッド メソッドを使用して実際に QGraphicsItems を更新する必要がありますか? または、これを行う簡単な方法はありますか?
以下は単なる仮説です。QtConcurrent を使用して、QGraphicsItems のリストでメソッドを実行できますか? QGraphicsItem ペイント メソッドで QMutex を使用し、物理メソッド (QGraphicsItem のプロパティを変更する) で QMutex を使用すると、どの時点でも 1 つのスレッドだけが各 QGraphicsItem を読み書きすることが保証されますか?