是否可以为 QScatterSeries 中的每个点设置单独的标记颜色?

问题描述

This post 表明可以为 QScatterSeries 中的每个点设置单独的标记大小。每个点的单独标记颜色怎么样?

解决方法

圆圈是 QGraphicsEllipseItem,所以你可以投射它们,然后使用 setBrush 方法设置颜色:

for(int index= 0; index < series->count(); index++){
    QPointF p =  chart->mapToPosition(series->at(index),series);
    QGraphicsItem *it = view.itemAt(view.mapFromScene(p));
    it->setTransformOriginPoint(it->boundingRect().center());
    it->setScale(data[index].s);
    if(QGraphicsEllipseItem *ellipse = qgraphicsitem_cast(it)){
        QColor color = QColor::fromRgb(QRandomGenerator::global()->generate());;
        ellipse->setBrush(color);
    }
}

enter image description here