2010-12-04 16 views
1

の作成:は今、私はちょうどグラデーションの塗りの円を作成しようとしていますQGradient

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

しかし、このすべてが実現してくれ完全に白い円を表示することです。どのように私はこれを修正することができますか?

答えて

3

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

確かに白くなります。間違った座標を使用しています。あなたの "/ * stuff * /"変数リストを表示してください。あなたが見

あなたは間違った場所に楕円を描くことができ、それは確かに白になります(あなたのケースではその少しだけ面積)あなたのウィジェットの勾配を設定した場合、:[see pic]
セットのグラデーションが正しい座標。例えば:

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

[see pic]

+1

間の数であるはいああ、私はグラデーションが再設定されると思ったウィジェットに相対的ではなく、各楕円に優先します。ありがとう! – wrongusername

1
ラインで

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

ラインへの変更を

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

nは0と1

関連する問題