首先,我的QT环境是MSVC 2017 64位的5.12.0,我之前使用MSVC 2017 64位的5.10.0,但是结果是相同的。
例如,在QLineSeries中,setPointsLabelVisible和setPointsVisible将被禁用。在QScatterSeries中,setMarkerShape将被禁用。就像我上传的图片一样。
图片1
在这张照片中,我没有设置UseOpenGL(true)
图片2
在这张图片中,我设置了UseOpenGL(true),并且markerShape变成了块状而不是带有边缘的圆。
我尝试在setUseOpenGL(true)之后设置这些属性,但是它不起作用。
我想知道在使用setUseOpenGL(true)时如何启用这些属性。
答案 0 :(得分:2)
我刚刚查看了QtChart
的源代码,所有QChartSeries
都继承自QAbstractSeries
,并且在QAbstractSeries
中有一些功能,例如setUseOpenGL
。有一些注释:
系列绘图的OpenGL加速适用于需要快速绘制大量点的用例。它针对效率进行了优化,因此使用它的系列缺乏对非加速系列可用的许多功能的支持:
- 加速系列不支持系列动画。
- 加速系列不支持点标签。
- 笔样式和标记形状在加速系列中被忽略。
- 仅支持实线和普通散点。
- 散点可以是圆形或矩形,具体取决于底层的图形硬件和驱动程序。
- 极坐标图不支持加速序列。
- 在使用加速系列时,不建议启用图表阴影或使用透明的图表背景颜色,因为那样会大大降低帧速率。
我认为这意味着setUseOpenGL
用于绘画中的高性能。而且它不支持您不使用setUseOpenGL
时支持的许多功能。