QMainWindow を持つアプリケーションがあり、理想的には QGLWidget を中央に配置し、ツールバーやその他のトップ/サイド ウィジェット用に外側にスペースを残します。
残念ながら、QGLWidget がどのようなサイズまたはジオメトリに設定されていても、巨大に見え、メイン ウィンドウ全体を占有します。
基本的に、セットアップは次のとおりです。 CreateWindow() は main() で呼び出され、メイン ウィンドウを構築し、GLWidget を構築する関数 Init() を呼び出します。したがって、適応したメイン ウィンドウ クラスのメンバーである Init() 内には、基本的に次のものがあります。
GLScene = new MyQGLWidget(this);
setCentralWidget(GLScene);
ここで、GLScene を目的のサイズと位置に合わせるために、まず GLWidget (GLWidget から直接派生した私のクラス) コンストラクター内でジオメトリを設定しようとしました。
MyQGLWidget::MyQGLWidget(QWidget* parent){
....
setGeometry(210, 40, 600, 400); //the main window is of course bigger and should fit this nicely
....
}
ただし、これはまったく機能せず、メイン ウィンドウ全体を占有していました。代わりに、setGeometry 呼び出しを Init() に入れてみました。setCentralWidget(); の直前と直後の両方で試しました。どちらのオプションも機能しませんでした。また、setCentralWidget 呼び出しを完全に削除することもできませんでした (実際、これにより GLWidget が消えました)。
これは明らかに適切に機能していないため、GLWidget をスケーリングする正しい方法は何ですか? それとも、もっと深く調べる必要があるのは、物事がどのように順序付けられているかだけの問題ですか?