OpenGL/C++/Qt-助言が必要
-
19-09-2019 - |
質問
皆様にお伝えしたくて書き込みプログラムをOpenGLというインターフェースのツールバー.私の初期反応を利用GUI、その後さらに調査をC++で実感したGUIの依存のOSを使用(Windowsの場合).そのため、その利用QTを助けてくれます。
私の質問があれば私のベスト/適切なアプローチをす事ができます。私も書くことができる私のOpenGLプログラムのGUIをしたいと思っていインターフェースのC++コードをいだいたいすることができるようになります.
例えば、私が作成した簡単なコントロールパネル"矢各方面へ。や画面していボックスオブジェクト作成がだぶつきしたいのでのインタフェースに矢印をクリックするとopenGLのプログラムに移動します。
解決
使用Qtはコヒーレントのための問題:で良い統合のOpenGlのQtOpenGLモジュールです。
- 出ディスプレイからクラス
QGLWidget
まQt4.8)、もしくはQOpenGLWidget
(Qt5.4)を仮想方法paintGL()
など。 - まアクセスでは、Qtの信号スロットシステムを導入するように、まさに追いつくことができGuiイベントを更新OpenGl表示されます。
他のヒント
あなたはあなたが記述だから何QGLWidget
の上に通常の非OpenGLのQtのウィジェットを使用することができません-ことができます。
一つは、通常のウィジェットが不透明でなければならなかったということでした。彼らは透明であった瞬間はどのような方法でそれらの下にゴミのすべての種類がありました。それはので、多分しばらく前にこの問題の最新バージョンアドレスでした。あまりにもそうYMMVプラットフォーム固有されている可能性があります。
GLUTに滞在。コントロールパネルのためのQtを追加する必要はありません。あなたは(あなたのプログラムの設計のためのより良い作品いずれかまたは第二の窓、)サブウインドウを開き、そのウィンドウにコントロールを描画し、マウス操作を処理するためにGLUTを使用することができます。
さらに、QtとGLUTは、それぞれ独自のイベントループを持っています。ちょうどQtのイベントループを使用するには、GLUTのイベントループがあなたのコールバック関数を呼び出すことがないであろうから、GLUT構造の多くを放棄する必要があると思います。 Qtは他人イベントループは、Qtのイベント処理コードを呼びましょう持っている機能を持っていませんが、私はイベント情報オフGLUTの手を作るための簡単な方法はないと思います。