首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QPainterPath形状联合(单笔画)

QPainterPath形状联合(单笔画)
EN

Stack Overflow用户
提问于 2018-05-11 20:20:43
回答 1查看 606关注 0票数 0

我试着用QPainterPath创建两种形状的结合来画一个漫画气球:

代码语言:javascript
复制
const int kb = 4;
QRectF br = text_->boundingRect().adjusted(-kb, -kb, kb, kb);

// anchor on bottom side
qreal y = br.bottom();
qreal x = 0.5 * (br.left() - br.right()) + br.right();
const int kw = 6;

QPainterPath pTip;
pTip.moveTo(offset_);
pTip.lineTo(x - kw, y);
pTip.lineTo(x + kw, y);
pTip.lineTo(offset_);

QPainterPath pRect;
pRect.addRoundedRect(br, 2 * kb, 2 * kb);

shape_->setPath(pTip.united(pRect));

我得到的是:

鉴于我想要得到一个单一的形状,只有一个连续的轮廓,如下:

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-11 20:27:37

您可以使用QPainterPath::simplified()删除内部边缘:

返回此路径的简化版本。这意味着合并所有相交的子路径,并返回不包含交叉边的路径。..。

请注意,如果您的路径中有Bezier曲线,这会使Bezier曲线陷入混乱,并且它会重置填充规则。但是,由于您没有使用这些特性(至少在已有的示例中没有使用),simplified()就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50299730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档