我想用渐变画笔画一个弧,用来做仪表盘。
但发现只有渐变笔刷没有渐变画笔,网上查也没查到,如果有的话求告知
有啊,详见看:https://blog.csdn.net/pp634077956/article/details/50623645
在Qt中,确实没有直接提供渐变画笔的类。不过,您可以使用QPainterPath来绘制弧线,并将其填充为渐变色。
以下是一个简单的示例代码,展示如何使用渐变笔刷和QPainterPath来绘制一个渐变色弧形:
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
// 创建一个矩形
QRectF rect(20, 20, 200, 200);
// 创建一个渐变
QConicalGradient gradient(rect.center(), -90);
gradient.setColorAt(0, Qt::red);
gradient.setColorAt(0.5, Qt::yellow);
gradient.setColorAt(1, Qt::green);
// 创建一个QPainterPath对象,并添加弧线路径
QPainterPath path;
path.moveTo(rect.center());
path.arcTo(rect, -45, 270);
// 设置渐变笔刷,并用QPainterPath对象填充颜色
painter.setBrush(gradient);
painter.setPen(Qt::NoPen);
painter.drawPath(path);
}
我们通过创建一个矩形并在其中心创建一个锥形渐变,创建一个QPainterPath对象,并使用arcTo()方法添加一个弧线路径。最后,使用setBrush()方法将渐变笔刷设置为当前画笔的笔刷,并使用drawPath()方法绘制填充了渐变色的弧线。