C++ QGraphicsPolygonItem绘制开放(非闭合)多边形

C++ QGraphicsPolygonItem绘制开放(非闭合)多边形,c++,qt,qgraphicsview,C++,Qt,Qgraphicsview,我使用的是QGraphicsPolygonItem,我注意到它总是将端点与起点连接起来 我知道多边形术语就是这个意思,我要找的是“多段线”或“多边形链”。我在QGraphicsItem子类中没有发现类似的东西 如何在QGraphics框架中绘制多边形链?是否有QGraphicsPolygonItem的属性或这样做的类?您可以使用QPainterPath和lineTo方法输入您的多段线点,然后只需使用QGraphicsPolygonItem将其设置为图形项目 或者,您也可以考虑将多个QGraphi

我使用的是QGraphicsPolygonItem,我注意到它总是将端点与起点连接起来

我知道多边形术语就是这个意思,我要找的是“多段线”或“多边形链”。我在QGraphicsItem子类中没有发现类似的东西


如何在QGraphics框架中绘制多边形链?是否有QGraphicsPolygonItem的属性或这样做的类?

您可以使用QPainterPath和lineTo方法输入您的多段线点,然后只需使用QGraphicsPolygonItem将其设置为图形项目

或者,您也可以考虑将多个QGraphicsLineItem组合成一个QGraphicsSiteMgroup,但这更困难,因为您需要注意将行对齐在一起

这就是你要找的吗

编辑:

QPainterPath显然正在关闭路径,然后只剩下一组行

编辑2:


很抱歉让您感到困惑,但HostileFork似乎是对的-您只需使用QPainterPath并调用
pathItem->setBrush(QBrush(Qt::transparent))以保持路径未填充。

我遇到了类似的问题,我使用QGraphicsPathItem类解决了这个问题。在以下代码中,多边形是非闭合的QPolygonF对象(即起点与终点不同的QPolygonF):

显示此QGraphicsPathItem对象时,起点(理论上)与其终点断开连接


很抱歉,这个示例代码是用Java编写的;但是机制应该与C++相同。

qPaTalPATH不会自动关闭路径,所以使用Lyto和MOVET序列可能是最好的方法。您可能会因为填充而感到困惑?如果不希望填充,则必须调用
pathItem->setBrush(QBrush(Qt::transparent))
QPainterPath path = new QPainterPath();
path.addPolygon(polygon);
QGraphicsPathItem contour = new QGraphicsPathItem(path);
contour.setPen(new QPen(QColor.black));