QPen中的自定义破折号样式看起来很脏

时间:2018-01-05 15:13:53

标签: c++ qt qt5 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);
...

我得到了我需要的模式,但这条线看起来很“脏”:有些破折号似乎比其他破折号更重要了:

enter image description here

只有当我不使用setWidthF()或将其与setWidthF(1.0)一起使用时,线条看起来干净均匀。但是,如果我增加宽度甚至一点点,线条会被破坏。是否可以使用自定义短划线和任意宽度来获得干净均匀的线条?

1 个答案:

答案 0 :(得分:1)

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

使用:

painter->setRenderHint(QPainter::Antialiasing)

解决了这个问题。