2010-12-04 38 views
1

En ce moment, je suis juste en train de créer un cercle avec un remplissage dégradé:Création 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*/); 

Cependant, tout cela est de me accomplit montrer un cercle totalement blanc. Comment puis-je rectifier cela?

Répondre

3

Je vais essayer de vous aider, mais je ne parle pas très bien l'anglais. Merde, je ne peux pas non plus poster d'images en attendant ... Je les publierai sur un autre site.

Bien sûr, il sera blanc. Vous utilisez de mauvaises coordonnées. Montrez-moi votre liste de variables "/ * stuff * /", s'il vous plaît.

Vous voyez, si vous définissez gradient pour votre widget (dans votre cas son seul un petit coin) vous pouvez peindre votre ellipse à un mauvais endroit et il sera sûrement blanc: [see pic]
Set coordonnées Dégradés correct. par exemple:

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

[see pic]

+1

ah oui , Je pensais que le dégradé serait réglé re latif à chaque ellipse au lieu de par rapport au widget. Merci! – wrongusername

1

Dans la ligne

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

changement à la ligne

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

n étant un nombre compris entre 0 et 1.