设置KDChart::LineDiagram marker style的通用代码

一段设置KDChart::LineDiagram marker style的通用代码

//markerstyle map
   KDChart::MarkerAttributes::MarkerStylesMap msMap;
   msMap.insert( 0, KDChart::MarkerAttributes::MarkerCircle );
   msMap.insert( 1, KDChart::MarkerAttributes::MarkerSquare );
   msMap.insert( 2, KDChart::MarkerAttributes::MarkerDiamond );
   msMap.insert( 3, KDChart::MarkerAttributes::Marker1Pixel );
   msMap.insert( 4, KDChart::MarkerAttributes::Marker4Pixels );
   msMap.insert( 5, KDChart::MarkerAttributes::MarkerRing );
   msMap.insert( 6, KDChart::MarkerAttributes::MarkerCross );
   msMap.insert( 7, KDChart::MarkerAttributes::MarkerFastCross);
    //set markerstyle of each line
    //showmarker but hide text
    for(int i =0; i < widget.lineDiagram()->datasetMarkers().size();++i)
    {
       KDChart::DataValueAttributes dva =widget.lineDiagram()->dataValueAttributes(i);

       KDChart::MarkerAttributes ma = dva.markerAttributes();
       ma.setMarkerStyle(msMap[i % msMap.size()]);
       ma.setVisible(true);

       KDChart::TextAttributes ta = dva.textAttributes();
       ta.setVisible(false);

       dva.setTextAttributes(ta);
       dva.setMarkerAttributes(ma);
       dva.setVisible(true);
       widget.lineDiagram()->setDataValueAttributes(i, dva);
    }

猜你喜欢

转载自blog.csdn.net/jeffyko/article/details/79333413