我只想将规范渐变添加到圆中的特定弧上
但是当我使用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/