2010-12-04 25 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

之間的數啊是,我認爲這個梯度會被設置爲re lative到每個橢圓而不是相對於小部件。謝謝! – wrongusername 2010-12-05 02:02:53

1

在線路

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

它改變到線路

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

n爲0和1。