给定一个QPainterPath
如何仅在路径的内部或外部边缘(或非封闭路径的左侧或右侧)上描边路径?
QPainter::strokePath()
使笔沿路径居中并使相同数量的墨水落在两侧。有关所需效果的视觉示例,请参见我制作的此图(针对 SVG 提案,而不是功能):
我不介意这是通过一些技巧来完成的,例如将路径本身设置为剪切区域(用于内部)或反剪切区域(用于外部)。
这里的目标是用低不透明度填充填充一个圆角矩形,然后用低不透明度描边在圆角矩形之外进行描边,以模拟 2 步“模糊”衰减。如果描边与填充重叠,则不透明度加倍,破坏效果。由于形状复杂,路径的简单缩放不会很好地工作,即使它可能适用于上面绘制的圆形和矩形。