所以,
我在定义的区域中绘制QPolygonF。该区域继承自QGraphicsView。

我想要做的就是让用户在QPolygonF的控制点周围移动并更改多边形,即使在创建多边形之后也是如此。我真的找不到如何执行此操作的参考。

由于我画线以闭合并表示多边形,因此在可绘制区域中可以有很多东西,清除它并一遍又一遍地绘制似乎不正确。

有谁知道我该怎么解决?

谢谢 !

最佳答案

关于您为什么描述您的“区域”继承自QGraphicsView,然后讨论QPolygonF,我有些困惑。如果您使用的是QGraphicsView,则意味着您具有QGraphicsScene,并且将使用QGraphicsPolygonItem。

但是,假设这里的QGraphicsView不相关,则QPolygonF只是从点向量继承的类。 QVector。

您应该能够遍历所有点,然后将它们移动到所需的任何位置。您可以得到以下几点:-

QPolygonF poly; // assume it has been given a number of points
QPointF& point = poly[index]; // where index is the index into the QVector of points


然后,您可以移动要点:-

point.SetX(xPos);
point.SetY(yPos);


在移动点时重画项目应该不是问题。

关于c++ - 在图形中缩放已绘制的QPolygonF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19547507/

10-12 23:07