通过Qconicalgradient仅画圆弧而不是完整圆

通过Qconicalgradient仅画圆弧而不是完整圆

我只想将规范渐变添加到圆中的特定弧上
但是当我使用QCanonicalGradient时,我的所有圆都将被填充,我试图使其他部分透明,但是在我希望透明的其他部分之间插入了规范的渐变,
您能帮我吗,我该如何仅对具有标准梯度的特定弧进行插值?
先感谢您
这是我的代码:
(我想在m_start和m_end之间进行插值)

QConicalGradient gradient( QPointF( m_xActualOuterRadius, m_yActualOuterRadius ), 0.0);
gradient.setColorAt(0.0, Qt::transparent);
gradient.setColorAt(m_startColor, Qt::transparent);
gradient.setColorAt(m_startColor, m_foregroundColor);
gradient.setColorAt(m_endColor, m_foregroundColor.lighter());
gradient.setColorAt(1.0, Qt::transparent);

最佳答案

drawPie()中的QPainter方法与安装了渐变的QBrush一起使用。

例如(我在pixmap上绘制,但是您可以选择其他东西):

QPixmap pixmap(325,215);

QPainter p(&pixmap);//we will paint on pixmap

QConicalGradient gradient( QPointF( 50, 50 ), 0.0);//your gradient
gradient.setColorAt(0.0, Qt::blue);//colors which you want
gradient.setColorAt(0.2, Qt::yellow);
gradient.setColorAt(0.4, Qt::red);
gradient.setColorAt(0.75,Qt::green);
gradient.setColorAt(1.0, Qt::magenta);
p.setBrush(QBrush(gradient));//set brush, it is our background and it will be gradient

    QRectF rectangle(10.0, 20.0, 80.0, 60.0);//preparation for drawPie method
     int startAngle = 30 * 16;
     int spanAngle = 120 * 16;
//it is from Qt documentstion, you can find best values for you
     p.drawPie(rectangle, startAngle, spanAngle);

    label->setPixmap(pixmap); //just show pixmap in label

关于c++ - 通过Qconicalgradient仅画圆弧而不是完整圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25719049/

10-12 21:14