通过Qconicalgradient只画一条弧,而不是整圈

draw only an arc by Qconicalgradient not full circle

本文关键字:Qconicalgradient 一条 通过      更新时间:2023-10-16

我只想将规范梯度添加到圆中的特定弧但是当我使用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);

在安装梯度的QBrush中使用QPainter中的drawPie()方法。

例如(我在像素图上画,但你可以选择其他东西):

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
相关文章:
  • 没有找到相关文章