Qt/opengl でテトリス ゲームを書いています。
ゲームは部分的にイベント駆動型 (QGLWidget である Game クラス) であり、他の部分は QThread (GameLogic クラス) にあります。このウィジェットを「メニュー」ウィジェットの親ウィジェット内に配置しようとしたときに問題が発生しました。ゲーム ウィジェットの paintGL() メソッドから親ウィジェット (親) を更新するためにシグナルを送信しても、何も起こらず、アプリがフリーズしたように見えます。
repaint() の代わりに resize() を試すと、親ウィジェットのサイズが変更され (そして更新も行われると思います)、ゲームがどこまで進んだかがわかります。
したがって、基本的に私のゲームウィジェットとスレッドは正常に動作しますが、親ウィジェットに単にそれ自体を更新するように依頼することはできませんでした (問題がある場合)。update()、repaint() の両方QCoreApplication::processEvents()
を試し、QueuedConnection と DirectConnection にも接続しました。親は更新されていないようですが、「再帰的再描画」エラーメッセージがたくさんあります。