我正在创建漫画书编辑器。我希望能够为语音气球使用一些相当复杂的可自定义形状。
我可以绘制尾巴,然后绘制一个气球,但这意味着我在形状内部有轮廓,我只想在边缘附近。
我认为QPainterPath::simplified()
可以解决问题,但它似乎没有做任何事情。
目前,我最好的想法是绘制一个粗轮廓的形状,然后再画一次没有轮廓,但我不认为这将适用于"零宽度"概述
答案 0 :(得分:1)
我可以在这里想到两种可能的解决方案:
第一种方法允许使用替代线条样式(虚线或波浪线),但后者会允许“轮廓”略微偏移,因此它在某些边缘周围看起来更厚,而在其他边缘周围更薄。
答案 1 :(得分:1)
事实证明QPainterPath::simplified()
确实有效。这取决于我是顺时针还是逆时针绘制(我相信它在顺时针方向绘制时有效),我认为这取决于Qt的绕组填充是如何工作的。
// create a path representing the bubble and its "tail"
QPainterPath tail = tail.shape();
tail.addPath(bubble.shape());
tail.setFillRule(Qt::WindingFill);
painter->drawPath(tail.simplified);