qt - QPainterPath 描边伪影
问题描述
我正在将 aQPainterPath
与文本放在一起,然后我正在绘制它,首先是QPainter::strokePath
,然后是QPainter::fillPath
。但是,笔划会出现伪影,如图所示。我做错了什么/如何防止这种情况?我应该将其报告为错误吗?
解决方案
我发现下面的代码没有使用strokePath
and fillPath
,而是在没有人工制品的情况下工作,并且渲染速度更快:
if(outlineEnabled) {
p.setBrush(Qt::NoBrush);
p.setPen(QPen(outlineColor, outlineWidth/scaleFactor, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
for(const auto &polygon : path.toSubpathPolygons())
p.drawPolygon(polygon, Qt::OddEvenFill);
}
p.setBrush(color);
p.setPen(Qt::NoPen);
for(const auto &polygon : path.toFillPolygons())
p.drawPolygon(polygon, Qt::OddEvenFill);
推荐阅读
- jenkins - 在提交时向构建失败的人发送电子邮件
- ios - iOS 13“发生 SSL 错误,无法与服务器建立安全连接。”
- java - 单击天气按钮时应用程序不断崩溃
- powershell - 我应该使用什么命令来获取有关 Powershell 的全面服务信息?
- c# - C# Blazor WebAssembly:参数 2:无法从“void”转换为“Microsoft.AspNetCore.Components.EventCallback”
- reactjs - 如何解决此错误“不要将对象用作类型”?
- reactjs - 一次性导入 Material-ui 组件
- highcharts - Xaxis 应该在高图中的 (0,0) 对齐
- android - 如何将光标放在edittext的开头而不是整个edittext的中间?
- c# - 如何在 ASP.NET Core 上运行 Telegram Bot