У меня есть приложение с QMainWindow, в котором в идеале должен быть центр QGLWidget, с оставленными снаружи пробелами для панелей инструментов и других виджетов сверху/сбоку.
К сожалению, независимо от размера или геометрии QGLWidget, он кажется огромным и занимает все главное окно!
В основном, установка такова: CreateWindow() вызывается в main(), которая создает главное окно, и вызывает функцию Init(), которая создает GLWidget. Итак, в Init(), который является членом моего адаптированного класса главного окна, у меня, по сути, есть:
GLScene = new MyQGLWidget(this);
setCentralWidget(GLScene);
Теперь, чтобы заставить GLScene соответствовать желаемому размеру и положению, я сначала попытался установить его геометрию в конструкторе GLWidget (он же мой класс, производный непосредственно от GLWidget):
MyQGLWidget::MyQGLWidget(QWidget* parent){
....
setGeometry(210, 40, 600, 400); //the main window is of course bigger and should fit this nicely
....
}
Это, однако, совсем не сработало и по-прежнему занимало все главное окно. Вместо этого я попытался поместить вызов setGeometry в Init(). Я пробовал это как прямо перед, так и сразу после setCentralWidget(); ни один вариант не сработал. Также не было полностью удалено вызов setCentralWidget (фактически это привело к исчезновению GLWidget).
Поскольку это явно не работает должным образом, как правильно масштабировать GLWidget? Или это просто вопрос порядка вещей, который мне нужно изучить более глубоко?
minimumSize()
/maximumSize()
, чтобы проверить, сможете ли вы вообще им управлять? - person ChiefTwoPencils   schedule 28.08.2012