Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: spbroma от Июнь 11, 2012, 04:28



Название: Заливка QBrush и антиалиасинг
Отправлено: spbroma от Июнь 11, 2012, 04:28
Господа, у меня к вам два вопроса, сопряженные с проблемами, проиллюстрированными на прилагаемой картинке:

(https://dl.dropbox.com/u/3272879/Pictures/storage/qt_ellipse_trouble.PNG)
Код:
    QGraphicsScene* scene2 = new QGraphicsScene;
    scene2->clear();
    ui->graphicsView_2->setScene(scene2);
    ui->graphicsView_2->setRenderHint(QPainter::Antialiasing, true);

    QPen pen;
    QBrush brush;
    QColor color;

    for (int i = 0; i < sortFlexPresArray.size(); i++)
    {
        color.setHsv(20*i, 255, 200, 255);
        pen.setColor(color);
        brush.setColor(color);
        x = sortFlexPresArray.at(i).first*10;
        y = -sortFlexPresArray.at(i).second*20;
        scene2->addEllipse(x, y, 7, 7, pen, brush);
    }

    scene2->addEllipse(50, -50, 7, 7, QPen(Qt::black), QBrush(Qt::black));
    scene2->addEllipse(70, -50, 7, 7, QPen(Qt::black));

1. Где мой антиалиасинг?

Черные эллипсы в той же сцене, сцена задается в виде, которому указано сглаживаение.
В чем причина такой разборчивости?

2. Не очень важный вопрос.
Почему не срабатывает заливка цветом эллипсов по диагонали? Цвет для pen и brush задаётся один и тот же ведь.
Что характерно, если задавать его сразу в эллипсе
Код:
scene2->addEllipse(x, y, 7, 7, pen, QBrush(color));
всё срабатывает. В чем проблема?