1

今、私はグラデーション塗りつぶしで円を作成しようとしています:

//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*/);

しかし、これで達成できるのは、完全に白い円を表示することだけです。どうすればこれを修正できますか?

4

2 に答える 2

3

私はあなたを助けようとしますが、私は英語をあまり上手に話すことができません。くそー私もその間画像を投稿することはできません...私は他のサイトにそれらを投稿します。

確かにそれは白になります。間違った座標を使用しています。「/*もの*/」変数リストを見せてください。

ご覧のとおり、ウィジェットにグラデーションを設定すると(この場合は小さな領域のみ)、楕円を間違った場所にペイントすると、確実に白になります。[写真を参照]
グラデーションの座標を正しく設定します。例えば:

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

[写真を参照]

于 2010-12-04T23:30:33.573 に答える
1

行で

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

行に変更します

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

nは0から1までの数値です。

于 2012-02-04T15:12:48.140 に答える