使用 openGL 加速时不考虑 QChart z 值?

QChart z-values not respected when using openGL acceleration?

我正在尝试做一些与 Qt5 几乎完全相同的事情 callout example,但我发现如果您在该系列中调用 setUseOpenGL(true),则会出现标注 线下方而不是在线上方。

无论 zValue 设置为什么,包括 m_tooltip->setZValue(std::numeric_limits<qreal>::max());

,都是如此

有解决办法吗?

发生这种情况是因为 OpenGL 加速系列通过创建 QOpenGLWidget on top of the actual QGraphicsView, as noted in the documentation of the useOpenGL property:

If you draw any graphics items on top of a chart containing an accelerated series, the accelerated series is drawn over those items.

基本上,由于标注是在 QGraphicsView 内部呈现的,因此当启用 OpenGL 时,会在该 QGraphicsView 之上创建一个 QOpenGLWidget,因为标注出现在该行下方。