2

I have the following layout: enter image description here

The black rectangles are QVBoxLayouts, the red one is a generic widget container and the blue little rectangle is my custom openGL widget.

I already set the resize policies for all layouts and widgets, but I can't get the openGL little widget to resize to the extent of his parent's area (the red rectangle in the image).

I'm a Qt beginner, perhaps I need to use signals and slots to resize the little blue openGL widget to the red one? But how?

Johnny Pauling
  • 12,701
  • 18
  • 65
  • 108

2 Answers2

1

The QGLWidget should also be in a layout (of any layout type) to resize itself automatically when its parent is resized.

So, for instance, in the designer, left-click on the red "generic widget container", and choose a vertical layout.

alexisdm
  • 29,448
  • 6
  • 64
  • 99
  • I'm sorry but the "lay out" menu has every option grayed out. This is weird but I tried it in the first place.. I don't know why but everything's grayed out there – Johnny Pauling Jul 23 '12 at 14:42
  • I ended up adding the openGL widget dinamically by code with this->ui->graphLayout->addWidget(myOpenGLWidget); and now it works, thank you – Johnny Pauling Jul 23 '12 at 15:18
  • @JohnnyPauling If it was grayed out, maybe the GL widget was not a child of the other widget. You could check if it is in the hierarchical tree panel (you can also change the layout from the tree). – alexisdm Jul 23 '12 at 15:58
1

In Qt5.4 (i didn't test others) new QOpenGLWidget (inside layout) do not resized automatically in my case. I call

LayoutWidget->setGeometry(QRect(0, 0, event->size().width(), event->size().height()));

in resizeEvent(QResizeEvent *event) of parent widget.

Nick
  • 329
  • 3
  • 12