操纵QGradient以遵循路径

时间:2012-08-30 18:10:03

标签: c++ qt user-interface qt4 qt4.7

我正在使用Qt绘制看起来像管道的东西,它可以使用QPainterPath进行曲线和弧形。我使用QLinearGradient来填充管道,以使其具有三维外观。我无法弄清楚的是如何弯曲/弧形管道并使梯度跟随那些相同的曲线,以便保持3D效果。有什么想法吗?

换句话说,QGradient上的颜色停止需要与路径中的曲线一起旋转。

1 个答案:

答案 0 :(得分:0)

从qt examples可以看出,填充路径的渐变是完全相同的。因此,您定义一个漂亮的渐变,而不是路径,并使用如下代码将渐变添加到您的所有形状:

QLinearGradient myGradient;
QPen myPen;

QPainterPath myPath;
myPath.cubicTo(c1, c2, endPoint);

QPainter painter(this);
painter.setBrush(myGradient);
painter.setPen(myPen);
painter.drawPath(myPath);

最难的部分是定义一个可以顺畅移动的管道......你能分享你的代码,这样我们才能看到你的问题吗?