QT开发中文网

Q3DBars中设置大于10的值为红色

对于Q3DBars,可以通过设置每个柱子的颜色来实现大于10的值为红色。具体操作如下:

  1. 获取到Q3DBars的series对象。
  2. 遍历每个柱子,如果该柱子的值大于10,则将其颜色设置为红色。

代码示例:

// 获取series对象
QBar3DSeries *series = qobject_cast<QBar3DSeries *>(graph->seriesList().at(0));

// 遍历每个柱子
for (int i = 0; i < series->dataProxy()->itemCount(); i++) {
    QBarDataItem item = series->dataProxy()->itemAt(i);
    if (item.value() > 10) {
        // 设置该柱子颜色为红色
        QColor color(Qt::red);
        QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
        gradient.setColorAt(0.0, color);
        gradient.setColorAt(1.0, color.darker());
        series->setItemColor(i, QBrush(gradient));
    }
}

其中,graph是Q3DBars对象,表示当前绘制的图表。setItemColor()方法用于设置某个柱子的颜色。上面代码中使用了渐变来实现从浅红到深红的效果。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=3449

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表
  • 访客
    2023年10月07日 19:37:43
    series-˃setItemColor(i, QBrush(gradient));这句语句是错误
    查阅QBar3DSeries Class 官网文档介绍: https://doc.qt.io/qt-6/qbar3dseries.html#rowColors-prop
    QBar3DSeries 类似没有这个方法setItemColor
    答主是如何获得这个答案的,莫非是AI生成的。如若如此,未验证的答案只会浪费更多人的时间

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?