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

Posted

技术标签:

【中文标题】QPen 中的自定义破折号样式看起来很脏【英文标题】:Custom dash style in QPen looking dirty 【发布时间】:2018-01-05 15:13:52 【问题描述】:

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

【问题讨论】:

你使用的是什么 Qt 版本? Qt 版本 5.5.1 【参考方案1】:

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

使用:

painter->setRenderHint(QPainter::Antialiasing)

解决问题。

【讨论】:

以上是关于QPen 中的自定义破折号样式看起来很脏的主要内容,如果未能解决你的问题,请参考以下文章

MapKit 中的自定义地图样式

如何调用属于 PHP 类的自定义函数(wordpress do_action 样式)?

自定义grunt任务命名约定

动态代理中的自定义注解样式

sectionList 中的自定义部分样式 REACT NATIVE

样式视图传递给 SwiftUI 中的自定义视图