Более эффективный центральный виджет в QMainWindow: QGLWidget VS QGraphicsView - PullRequest
3 голосов
/ 02 июля 2011

Я использую QMainWindow для своего приложения и хочу сделать рендеринг openGL. 2 подхода:

1) установить в качестве центрального виджета QGLWidget и выполнить там весь рендеринг,

ИЛИ

2) установить в качестве центрального виджета QGraphicsView, установить область просмотра на мой QGLWidget, чтобы создать контекст рендеринга и выполнить рендеринг в моей сцене.

Какой из них предпочтительнее, когда речь идет об эффективности? (Я добавлю некоторые другие объекты позже, которые в первом случае будут QGLWidgets (как дочерние виджеты), а в последнем QGaphicsItems)

1 Ответ

4 голосов
/ 02 июля 2011

Использование QGLWidget и рендеринг с OpenGL напрямую в большинстве случаев будет более эффективным, но для управления динамическим набором отображаемых элементов потребуется больше работы. Использование инфраструктуры QGraphicsView будет иметь некоторые издержки, но предоставляет множество функций для управления отображаемыми элементами. Объем служебной информации для QGraphicsView будет зависеть от различных деталей, но в большинстве случаев это не будет узким местом, и его можно отрегулировать для различных моделей использования.

...