c++ - 为什么我的 qtcentralWidget(QGLWidget)无法正确调整大小?

标签 c++ qt qglwidget qmainwindow

我有一个带有 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 的正确方法是什么?或者这只是我需要更深入研究的事情如何排序的问题?

最佳答案

您需要为其添加布局。我有完全相同的东西(一个从 QGLWidget 派生的小部件),其父级调用调整大小函数。这解决了我的所有问题,并使我可以在运行时更改其大小。

关于c++ - 为什么我的 qtcentralWidget(QGLWidget)无法正确调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149471/

相关文章:

python - PySide,将窗口停靠到任务栏

c++ - 未加载 QMYSQL 驱动程序,已尝试所有提示

opengl - 在 QML 中托管 QOpenGL 小部件

c++ - 当相机完全放在前面时看不到物体

c++ - 立方体在 QGLWidget 中呈现为正方形

c++ - 以下 boost::asio 教程在他们的代码中出现错误

c++ - Arduino 中的 Serial.print uint64_t

c++ - Qt - 编写一个多 TCP 服务器程序

c++ - 如何区分(重载时)operator++ 的前缀和后缀形式? (C++)

c++ - 使用 FLTK 框架编译的问题