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

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

最佳答案

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

使用:

painter->setRenderHint(QPainter::Antialiasing)

解决问题。

关于c++ - QPen 中的自定义破折号样式看起来很脏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48116341/

相关文章:

linux - 在 openSUSE 下编译 QtProject 时出错

c++ - 运行 shellcode + vs2010

PHP & C++ 获取用户 IP

c++ - 如何将字符串数组作为 BSTR* 传递给 Web 服务代理

qt - QObject 在放入 QML 变量后被销毁

c++ - 如何将openCV中裁剪图像的数据数组转换为Qt中的RGB直方图

c++ - 如何更改 Eigen 的版本

qt - 无法使用按钮 : QML 关闭窗口

c++ - 对类型 'const QVariant' 的引用无法绑定(bind)到类型 'void' 的右值

c++ - QGraphicsView的MousePressEvent没有被调用