| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Не вызывается initializeGL() |
| Автор: OlegIT 29.8.2018, 14:42 |
| Qt, OpenGl. Есть дочернее, к главному окну, окно (QWidget), внутри него есть окна, наследованные от QOpenGLWidget (подвижное окно с кнопками на которых отображаются 3D объекты). При такой конструкции метод initializeGL() не вызывается. Если окно, наследованное от QOpenGLWidget, «привязано» к главному окну, то всё работает. Как исправить эту ситуацию? |
| Автор: Alexeis 10.9.2018, 15:16 | ||
Нужно понимать как устроен OpenGL в Windows. Контекст OpenGL привязывается к дескриптору окна. В Qt окна имеют только top level виджеты (обычно), но есть возможность создать Windows окно для любого виджета.
Скажу честно, не проверял, но знаю что такой способ позволяет инициализировать DirectX окошко, ну и создать контекст OpenGL руками также возможно. |
| Автор: OlegIT 19.9.2018, 15:48 |
| Выкрутился, но это не совсем грамотно, "привязал" окна с QOpenGLWidget к главному окну и соответствующим образом управляю их позициями. Кстати, это решение перекрывает http://forum.vingrad.ru/forum/topic-393189.html мой вопрос |
| Автор: Alexeis 19.9.2018, 16:53 | ||||
И в данном случае предлагается следующее решение
|