Создание QGradient - PullRequest
       4

Создание QGradient

1 голос
/ 04 декабря 2010

Прямо сейчас я просто пытаюсь создать круг с градиентной заливкой:

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

Однако все, что вам нужно, это показать мне полностью белый круг.Как я могу исправить это?

Ответы [ 2 ]

3 голосов
/ 05 декабря 2010

Я постараюсь вам помочь, но я не очень хорошо говорю по-английски. Чёрт, я тоже пока не могу публиковать изображения ... Я выложу их на другом сайте.

Конечно, это будет белым. Вы используете неправильные координаты. Покажите мне свой список переменных "/ * stuff * /", пожалуйста.

Видите ли, если вы установите градиент для своего виджета (в вашем случае это всего лишь небольшая область), вы можете закрасить свой эллипс в неправильном месте, и он обязательно будет белым: [см. Рис. * Установите градиенты координат правильно. например:

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

[см. Фото]

1 голос
/ 04 февраля 2012

В строке

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

изменить его на строку

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

n - число от 0 до 1.

...