当我使用setUseOpenGL(true)时,QChartSeries的某些属性将被禁用

时间:2019-04-13 05:24:13

标签: qt opengl qtchart qtopengl

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

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

图片1

enter image description here

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

enter image description here

在这张图片中,我设置了UseOpenGL(true),并且markerShape变成了块状而不是带有边缘的圆。

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

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

1 个答案:

答案 0 :(得分:2)

我刚刚查看了QtChart的源代码,所有QChartSeries都继承自QAbstractSeries,并且在QAbstractSeries中有一些功能,例如setUseOpenGL。有一些注释:

  

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

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

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