在c++中怎么将QVector(QPointF)对象pointlist转换为QPolygon对象m_polygon
时间: 2024-10-03 08:03:29 浏览: 31
《C++ GUI Qt 4 编程(第二版)》《C++ GUI programming with Qt4》高清-中文版-扫描版.pdf
4星 · 用户满意度95%
在 C++ 中,如果你有一个 QVector<QPointF> 类型的对象 pointList,它存储了一组 QPointF 点,你可以将其转换成 QPolygon 对象(代表二维空间中的多边形)。这里是一个简单的步骤:
首先,确保你的 QVector 包含至少三个点,因为 QPolygon 需要有至少三个顶点才能构成一个封闭的区域。
```cpp
QVector<QPointF> pointList;
// ... (填充你的点列表)
// 检查点的数量以便于创建多边形
if (pointList.size() >= 3) {
// 创建一个空的 QPolygon 对象
QPolygon polygon(pointList.begin(), pointList.end() - 1);
// 将 pointList 的内容赋值给 m_polygon
m_polygon = polygon;
}
```
上述代码中,我们传递给 QPolygon 构造函数的是一个范围 `[begin, end)`,这意味着最后一个元素(end - 1)不会被包含在内,因为我们已经包含了第一个点,所以不需要重复。
注意:`m_polygon` 是 QPolygon 类型的变量,你需要确保它是可用并且已经被声明过了。
阅读全文