質問

QtとOpenGLでプロジェクトを作成しました。

QtではpaintGL()が繰り返し呼び出されたので、その関数の外で値を変更し、update()を呼び出して新しいイメージを描画することができました。 また、プログラムを起動するとすぐにinitializeGL()を呼び出したと思います。

今私の質問は:

同じ機能を別のプログラムで使用したい。画像などを描画する必要はありません。paintGL()のような関数を作成して、アプリケーションが閉じないように呼び出され続ける方法があるかどうか疑問に思っていました。プログラムを実行し続けるwhile(true)ループを使用しようとしましたが、whileループのためにGUIが非アクティブでした。

スレッド化以外の任意のヒント。できれば。

ありがとう。

役に立ちましたか?

解決

正確なメカニズムは、使用しているGUIツールキットによって異なります。一般に、アプリは、イベントをディスパッチするために実行ループを継続的に処理する必要があります。そのため、 while ループで実行したアプリは応答しませんでした。

何かを絶えず再描画する必要がある場合、最も簡単な方法は、ウィンドウの作成時にタイマーを作成し、タイマーまたはハンドラーまたはコールバックで、ウィンドウを無効にして強制的に再描画することです。ペイントハンドラーは、タイマーの頻度(1秒あたり25回など)で呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top