Доброго времени суток.
Имеется http://doc.qt.io/qt-5/qgraphicsscene.html сцена, на которой расположено несколько item'ов. Также имеется http://doc.qt.io/qt-5/qgraphicsview.html на котором эта сцена отображается.
При использовании ui->graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers))), во время перетаскивания item'а на сцене, загрузка процессора не превышает 50%.
При использовании ui->graphicsView->setViewport(new QOpenGLWidget), во время перетаскивания item'а, загрузка процессора не падает ниже 99%. Тоже самое происходит при использовании обычного виджета в качестве vewiport'а.
Из этого напрашивается очевидный вывод, что в моем случае с http://doc.qt.io/qt-5/qglwidget.html больше используется графический процессор, а с http://doc.qt.io/qt-5/qopenglwidget.html или http://doc.qt.io/qt-5/qwidget.html - центральный процессор (что не очень хорошо).
Меня QGLWidget полностью устраивает, но он отмечен как deprecated (или obsolete), что означает что его исключат в Qt 6.
В связи с вышесказаным, хочу спросить у Вас совета, что использовать: быстрый старый QGLWidget или медленный новый QOpenGLWidget?
Скорее всего различаются настройки старого и нового виджета, проверьте что вы создаете контекст поддерживаемой версии и не используете неподдерживаемых расширений.
А кто мешает переопределить void QGraphicsView::drawBackground ( QPainter * painter, const QRectF & rect ) [virtual protected] для конкретного региона?
Я часто использую SVG в графических элементах, и при перемещении маленького элемента над большим наблюдается значительное отставание элемента от указателя мышки.
Если для большого SVG устанавливать кэш
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)