QGraphicsPolygonItem绘制一个打开(未关闭)的多边形

And*_*uel 5 c++ qt qgraphicsview

我正在使用QGraphicsPolygonItem,我注意到它始终将端点与起点连接起来.

我知道多边形术语的确意味着那个,我要找的是"折线"或"多边形链".我在QGraphicsItem子类中没有发现任何类似的东西.

如何在QGraphics Framework中绘制多边形链?是否存在QGraphicsPolygonItem的属性或者这样做的类?

小智 6

我有一个类似的问题,我通过使用 QGraphicsPathItem 类解决了它。在下面的代码中,多边形是一个非封闭的 QPolygonF 对象(即起点与终点不同的 QPolygonF):

QPainterPath path = new QPainterPath();
path.addPolygon(polygon);
QGraphicsPathItem contour = new QGraphicsPathItem(path);
contour.setPen(new QPen(QColor.black));
Run Code Online (Sandbox Code Playgroud)

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

对不起,这个示例代码是用 Java 编写的;但机制应该与 C++ 中的相同。


j_k*_*bik 3

您可以使用 QPainterPath 并使用 lineTo 方法输入您的折线点,然后只需使用 QGraphicsPathItem 使其成为图形项。

或者,您也可能会考虑将多个 QGraphicsLineItem 合并到一个 QGraphicsItemGroup 中,但这会更困难,因为您需要注意将线条对齐在一起。

这是你想要的?

编辑:

QPainterPath 显然正在关闭路径,那么您只剩下一组线条。

编辑2:

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