我遇到了与以下(未解答)问题相同的问题:Qt resizeGL problem

我正在为更大的应用程序测试新的QGLWidget。连接resizeGL方法以更改glViewport并重新绘制OpenGL View 。我的QGLWidget不是布局的一部分,只是被创建如下所示:

boost::shared_ptr<StandardCustomWidgetBuilder>
        builder(new StandardCustomWidgetBuilder());
WaterfallDirector<StandardCustomWidgetBuilder, DataSource> director(builder);
director.construct();
std::unique_ptr<CustomWidget> widget = builder->getWidget();
widget->show();

在我的计算机上,默认情况下会创建一个640x480的窗口,并在初始化时调用resizeGL。每当我调整窗口大小时,就不会调用resizeGL

为了解决这个问题,我尝试创建一个单独的QWidget,其QVBoxLayout仅包含CustomWidget。这创建了一个很小的窗口,因此我将sizeHintsizePolicy固定为CustomWidget,尽管这对调用resizeGL仍然没有影响。在这一点上,我不确定该如何进行。

最佳答案

我在同事的帮助下解决了我的问题。事实证明,我已经实现了event方法,却忘记了在其中调用QGLWidget::event方法。现在,小部件可以正确调整大小。

07-24 09:45