创建 QGradient

问题描述 投票:0回答:2

现在我只是想创建一个带有渐变填充的圆圈:

//I want the center to be at 10, 10 in the circle and the radius to be 50 pixels
QRadialGradient radial(QPointF(10, 10), 50);
radial.setColorAt(0, Qt::black); //I want the center to be black
radial.setColorAt(1, Qt::white); //I want the sides to be white
painter.setBrush(QBrush(radial));
painter.drawEllipse(/*stuff*/);

然而,这一切所完成的只是向我展示一个全白的圆圈。我该如何纠正这个问题?

c++ qt gradient qpainter
2个回答
4
投票

它会是白色的,因为你使用了错误的坐标。

如果你为你的小部件设置渐变(在你的情况下它只是一个小区域),你可以在错误的位置绘制椭圆,它肯定会是白色的:

正确设置渐变的坐标。例如:

QRadialGradient radial(QPointF(100, 100), 50);
// ...
painter.drawEllipse(50,50,100,100);

1
投票

改变:

radial.setColorAt( 0, Qt::black );

致:

radial.setColorAt( n, Qt::black );

n
是 0 到 1 之间的数字。

© www.soinside.com 2019 - 2024. All rights reserved.