2

首先,我的 QT 环境是 5.12.0 和 MSVC 2017 64 位,我之前使用 5.10.0 和 MSVC 2017 64 位,但结果是一样的。

例如,在 QLineSeries 中,setPointsLabelVisible 和 setPointsVisible 将被禁用。在 QScatterSeries 中,setMarkerShape 将被禁用。就像我上传的图片一样。

图 1

在此处输入图像描述

在这张照片中我没有设置UseOpenGL(true)
pic 2

在此处输入图像描述

在这张图片中,我 setUseOpenGL(true) 和 markerShape 变成了块而不是带边缘的圆形。

我尝试在 setUseOpenGL(true) 之后设置这些属性,但它不起作用。

我想知道如何在使用 setUseOpenGL(true) 时启用这些属性。

4

1 回答 1

2

我刚刚查看了 的源代码QtChartQChartSeries都继承自QAbstractSeries,并且QAbstractSeries其中有一些功能,例如setUseOpenGL. 有一些注释:

系列绘图的 OpenGL 加速适用于需要快速绘制大量点的用例。它针对效率进行了优化,因此使用它的系列缺乏对非加速系列可用的许多功能的支持:

  • 加速系列不支持系列动画。
  • 加速系列不支持点标签。
  • 加速系列将忽略笔样式和标记形状。
  • 仅支持实线和普通散点。
  • 散点可能是圆形或矩形,具体取决于底层图形硬件和驱动程序。
  • 极坐标图不支持加速系列。
  • 使用加速系列时不建议启用图表阴影或使用透明图表背景颜色,因为这会显着降低帧速率。

我认为这意味着setUseOpenGL用于高性能绘图。而且它不支持您不使用时支持的许多功能setUseOpenGL

于 2019-04-13T06:05:33.160 回答