Не элегантные колотые эллипсы с QPainter

0

Я рисую эллипс вокруг цели. Однако эллипсы не соединены и элегантны. По элегантности я имею в виду, что они не гладкие. это то, что выглядит эллипс вокруг изображения

Обратите внимание, что круг не является гладким и имеет шероховатость, я хотел бы сделать его гладким кругом/эллипсом. Любые предложения о том, как я могу это сделать? В настоящее время я делаю эллипсы.

QPainter painter(target);

QPen pen;
pen.setColor(Qt::red);
pen.setWidth(4);
pen.setStyle( Qt::SolidLine);
pen.setCapStyle(Qt::SquareCap);
pen.setJoinStyle(Qt::BevelJoin);
painter.setPen(pen);

QRegion r(QRect(0, 0, 50, 50), QRegion::Ellipse); 
painter.setClipRegion(r);
painter.drawPixmap(0, 0, source);
painter.drawEllipse(QRect(1, 1, 49, 49));
  • 1
    Для справки: вы говорите о «сглаживании».
Теги:
qt
qpainter
qtgui

2 ответа

4
Лучший ответ

Вам необходимо включить сглаживание:

painter.setRenderHint(QPainter::Antialiasing);
3

Добавить вызов

painter.setRenderHint(QPainter::Antialiasing)

перед рисованием.

Также обратите внимание, что обрезание по регионам может быть не сглажено, поэтому вам лучше просто нарисовать интересующие вас части (fi, рисуя эллипс текстурированным QBrush).

  • 0
    На самом деле это лучший ответ, по крайней мере, для Qt 3.4, где я это тестировал. Обтравочная маска не сглаживается.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню