我正在尝试创建一个带有渐变填充的圆圈:
//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*/);
然而,这一切所完成的只是向我展示一个全白的圆圈。我该如何纠正这个问题?
它会是白色的,因为你使用了错误的坐标。
如果你为你的小部件设置渐变(在你的情况下它只是一个小区域),你可以在错误的位置绘制椭圆,它肯定会是白色的:
正确设置渐变的坐标。例如:
QRadialGradient radial(QPointF(100, 100), 50);
// ...
painter.drawEllipse(50,50,100,100);
改变:
radial.setColorAt( 0, Qt::black );
致:
radial.setColorAt( n, Qt::black );
n
是 0 到 1 之间的数字。