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 и потому, что выноска появляется ниже линии.