Проблема изменения размера Qt

#qt #qt4

Вопрос:

Я пишу простую программу, в которой у меня есть только один виджет QGLWidget. Я инициализирую его в конструкторе моего основного класса следующим образом:

  view3d = new GLBox(this);
 

Объект view3d отображается правильно, но проблема в том, что метод resizeGL работает только один раз — при создании obejct. После этого он не запускается, когда я изменяю размер окна. Я использовал функцию qDebug (), чтобы проверить это, и, как я уже сказал, это работает только один раз. Я объявил resizeGL как защищенный метод. Может быть, вы знаете, что может вызвать эту проблему? Спасибо за ваши ответы.

Комментарии:

1. Я знаю, что ваш реальный код, вероятно, содержит невероятно умные трюки, которые вы не хотите показывать миру, но дайте мне передохнуть. Одна строка кода, и люди должны заботиться о том, чтобы помочь вам?

Ответ №1:

Вы должны добавить виджет view3d в родительский макет. Например.

 view3d = new GLBox(this);
QVBoxLayout *box_layout = new QVBoxLayout;
box_layout->addWidget(view3d);
this->setLayout(box_layout);