У меня есть код с использованием Qt 4. Я хочу перенести его в Qt 5 и переключиться на QOpenGL. Я не могу понять, где код от void paintGL()
и void initializeGL()
должен идти в QWindow. Может ли кто-нибудь помочь мне с примером?Перемещение из QGLWidget в QWindow
ответ
Я создал простой пример использования QWindow с OpenGL.
Чтобы упростить разработку OpenGL, я создал абстрактный класс GLWindow, который содержит виртуальные функции initializeGL()
, paintGL()
и resizeGL(int w, int h)
. Я считаю, что исходный код показывает связь между старым стилем и новым стилем.
Пример можно посмотреть здесь:
https://github.com/mortennobel/QtOpenGLChapter/tree/master/OpenGL3xAlt
Qt имеет at least one example (Overpainting) ставит виджеты поверх сцены OpenGL. Посмотрев на это, кажется, самым простым способом было бы наследовать от QGLWidget
вместо QWidget
и переопределить соответствующие виртуальные функции для инициализации и рисования.
Стандартным примером использования QWindow с OpenGL является hellowindow в qtbase/examples/opengl.
Прямой замены для initializeGL и paintGL нет. Вместо этого вы делаете что-то вроде этого:
- Имейте QWindow с поверхностным типом OpenGLSurface.
- Создайте QOpenGLContext с соответствующим форматом.
- Когда окно получает событие экспонирования, начните рендеринг (makeCurrent, ваши вызовы GL и, наконец, swapBuffers).
- 1. Как QWindow может заменить QGLWidget?
- 2. Показать QWindow в MainWindow
- 3. Сделать бескаркасный QWindow подвижный
- 4. createWindowContainer для подкласса QWindow
- 5. Использование QFileDialog с QWindow
- 6. QGLWidget в QTabWidget проблема
- 7. Qt - Обнаружить, когда QWindow закрыт
- 8. Drag-n-drop с QWindow
- 9. Добавить QWidget или другие элементы, полученные из QWidget, в QWindow
- 10. Resize события из другого класса, унаследованного от QWindow в QT
- 11. Где использовать makeCurrent() в QGLWidget?
- 12. Дисплей OptiX sample6 в QGLWidget
- 13. Qt: QMouseEvent не распространяется из QGLWidget
- 14. glActiveTexture в Qt и QGLWidget?
- 15. Более одного QGLWidget в макете
- 16. изменение яркости QGLWidget
- 17. Распознать набор/потеря Фокусное событие в QWindow
- 18. В чем разница между QWindow и QWidget
- 19. Покрасьте ошибку QGLWidget
- 20. QOpenGLContext vs QGLWidget, различия?
- 21. QGlWidget fullscreen no menu
- 22. Qt5, Webgl и QGLWidget
- 23. QGLWidget - быстрее grabFrameBuffer
- 24. Прозрачный QGLWidget поверх QGraphicsView
- 25. Как полноэкранный режим QGLWidget?
- 26. QGLWidget и аппаратное ускорение?
- 27. QGLWidget медленнее, чем QWidget
- 28. Когда вызывается QGLWidget paintGL?
- 29. Ограничение QGLWidget :: renderText
- 30. QGLWidget максимальный размер
Это то, что я искал. Спасибо! – Nazar554