我有一个带有 QMainWindow 的应用程序,理想情况下应该有一个 QGLWidget 以它为中心,在外部留有空间用于工具栏和其他顶部/侧面小部件。
不幸的是,无论 QGLWidget 设置为什么大小或几何形状,它看起来都很大并且占据了整个主窗口!
基本上,设置如下:在main()中调用CreateWindow(),构造主窗口,调用函数Init(),构造GLWidget。因此,在我改编的主窗口类的成员 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 的正确方法是什么?还是只是我需要更深入地研究事物的顺序问题?