3

我需要在 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) 一起使用时,线条看起来干净且均匀。但如果我稍微增加宽度,线条就会变坏。是否有可能使用自定义破折号和任意宽度获得干净均匀的线条?

4

1 回答 1

3

找到解决方案。这都是关于抗锯齿的。

使用:

painter->setRenderHint(QPainter::Antialiasing)

解决问题。

于 2018-01-06T11:11:02.807 回答