QTのグラフィック表示フレームが新しく、ドキュメントやGoogleでこれについて何も見つかりませんでした。別のメインでないスレッドからQGraphicsSceneを更新する
私はいくつかのデータの表現を描画するGUIアプリケーションを持っています。アプリケーション自体は行列/ベクトル(ニューラルネットのもの)で動作し、QGraphicsScene
でそれを表現しなければなりません。これまでのところ良いですが、別のスレッドからQGraphicsScene
を更新しようとすると、アプリケーションsegfaults &が遅かれ早かれクラッシュすることに気付きました。 QT Docsは、スレッドセーフについては何も言わない& Googleは何も与えていない。私が欲しいのは、計算を実行することです。& GUIの表示をそれに応じて更新しますが、GUIのコントロール自体は応答性を保つ必要があります。私が言ったように、私の最初の考えは、別のスレッドですべてを行うことでしたが、私がしようとするとランダムにクラッシュします。
QTでこの種のことを行うための「受け入れられた練習」はありますか、またはグラフィックビューフレームワーク自体でわからないことがいくつかありますか?
ああ、QTドキュメントはそんなことは分かっていません、申し訳ありません。 Kindofはjavadocsに使用されていましたが、通常は明示的に述べていました。とにかく、これを回避する方法を知っていますか? – TC1
答えを更新しました。 2つのスレッドを同期させる必要があります。同じQGraphicsSceneインスタンスが他のスレッドの同じメソッドまたは別のメソッドを実行している間に、一方のスレッドで 'QGraphicsScene'メソッドを呼び出すことができます。可能な大虐殺を考えよう! – Troubadour
注目&受け付けました。 – TC1