我遇到了与以下(未解答)问题相同的问题: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
。这创建了一个很小的窗口,因此我将sizeHint
和sizePolicy
固定为CustomWidget
,尽管这对调用resizeGL
仍然没有影响。在这一点上,我不确定该如何进行。 最佳答案
我在同事的帮助下解决了我的问题。事实证明,我已经实现了event
方法,却忘记了在其中调用QGLWidget::event
方法。现在,小部件可以正确调整大小。