所以,
我在定义的区域中绘制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/