gpt4 book ai didi

c++ - Qt中如何按区域填充不同颜色段的圆角矩形?

转载 作者:行者123 更新时间:2023-11-30 02:49:09 25 4
gpt4 key购买 nike

我是 Qt 的新手,我尝试在网上寻找示例和文档,但找不到任何东西。我想要这样的东西:

enter image description here

我使用 QLinearGradient 尝试过,但它并不是我想要的。我想要纯色。这是我尝试过的:

void drawBackground ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const {
QLinearGradient linearGrad(QPointF(option.rect.x(), 0), QPointF(option.rect.x() + option.rect.width(), 0));

int total = index.data(StatisticsModel::TotalCount).toInt();
linearGrad.setColorAt(0.0, QColor(255, 255, 255, 0));

int sum = 0;
for (int i = 7; i >= 1; i--) {
int count = index.data(StatisticsModel::Grade0 + i).toInt();

if (count) {
sum += count;
linearGrad.setColorAt(1.0-((double)(total-sum))/total, Prefs::gradeColor(i));

}
}


QRect rect(option.rect);
rect.adjust(1, 1, -1, -1);

QPainterPath path;
path.addRoundedRect( rect, 2.0, 2.0 );
painter->setBrush(QBrush(linearGrad));
painter->drawPath(path);
}

如有任何帮助,我们将不胜感激。

最佳答案

好吧,像这样为圆角矩形着色的最佳方法我想是为其创建 QPainterPath 然后构造应该具有指定颜色的普通矩形,将它们与初始圆角矩形相交 QPainterPath 使用函数 QPainterPath::intersected 绘制它们,选择相应的纯色画笔并使用函数 drawPath

关于c++ - Qt中如何按区域填充不同颜色段的圆角矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21512316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com