#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);