Qt QGraphicsScene & OpenGL, что может быть лучшим подходом для совмещения обоих? - PullRequest
2 голосов
/ 04 ноября 2011

Я собираюсь начать разработку в своем приложении для векторного просмотра.Я изучил инструменты 2D и 3D Qt, и у меня сложилось впечатление, что мне нужно создать два независимых мира данных.Для QGrapchicsScene нужны «элементы», для OpenGL нужны необработанные данные.Каково ваше мнение?

1 Ответ

2 голосов
/ 18 ноября 2011

Единственный способ, которым я видел это, - это использовать парадигму, изложенную в демке «Коробки», доступной из исполняемого файла qtdemo, который включен в Qt.

По сути, вы должны создать подкласс QGraphicsScene и поместить всевашего кода openGL в переопределенную версию виртуальной функции drawBackground () вашего подкласса.Затем вы помещаете QGraphicsView (или его подкласс) в свой пользовательский интерфейс и используете QGraphicsView :: setViewPort (QWidget *), чтобы поместить QGLWidget в качестве области просмотра графического представления, что позволит коду drawBackground использовать openGL.

...