Пользовательский стиль тире в QPen выглядит грязно

Мне нужно нарисовать пунктирные линии в Qt с QPen, и я хочу установить пользовательский рисунок тире с QPen :: setDashPattern ():

QPen pen;
pen.setColor(Qt::black);
QVector<qreal> dashes;
dashes << 1.0 << 8.0;
pen.setDashPattern(dashes);
pen.setCapStyle(Qt::RoundCap);
pen.setWidthF(1.02);
painter->setPen(pen);
...

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

введите описание изображения здесь

Только если я не использую setWidthF () или использую его с setWidthF (1.0), строки выглядят чистыми и ровными. Но если я немного увеличу ширину, линии испортятся. Можно ли получить чистые и ровные линии с произвольной чертой и произвольной шириной?

0

Решение

в QT doc это говорит следующее: The pattern must be specified as an even number of positive entries where the entries 1, 3, 5... are the dashes and 2, 4, 6... are the spaces, Может быть, поэтому линии не ровны. Вот ссылка на QPen class description в Qt doc Qt doc.

0

Другие решения

Решение найдено. Это все о сглаживании.

С помощью:

painter->setRenderHint(QPainter::Antialiasing)

решает проблему.

0

По вопросам рекламы [email protected]