QChart z-значения не соблюдаются при использовании ускорения OpenGL?

Я пытаюсь сделать что-то почти такое же, как в примере выноски Qt5, но я обнаружил, что если вы звоните setUseOpenGL(true) на серии, выноска появляется под линией, а не над ней.

Это правда, несмотря ни на что zValue установлен, в том числе m_tooltip->setZValue(std::numeric_limits<qreal>::max());

Есть ли обходной путь для этого?

введите описание изображения здесь

1 ответ

Решение

Это происходит потому, что ускоренная серия OpenGL работает, создавая QOpenGLWidget поверх фактического QGraphicsView, как отмечено в документации к свойству use OpenGL:

Если вы рисуете какие-либо графические элементы в верхней части диаграммы, содержащей ускоренную серию, ускоренная серия рисуется поверх этих элементов.

В основном, так как выноска отображается внутри QGraphicsView, когда OpenGL включен, QOpenGLWidget создается поверх этого QGraphicsView и потому, что выноска появляется ниже линии.

Другие вопросы по тегам