在Qt中创建一个开放的多边形(线条)

时间:2016-06-25 17:37:29

标签: c++ qt polygon

如何在 Qt 中使用 QVector 初始化多边形来创建打开多边形?

QPolygonF 将始终关闭多边形并将最后一个点与第一个点连接。

感谢您的帮助

[编辑]

QGraphicsScene

QVector<QPointF> test{{1,1},{100,1},{100,100}};
QPolygonF polygon(test);
addPolygon(polygon);
qDebug() << polygon.isClosed();
qDebug() << polygon.first() << polygon.last();

输出:

  • 一个三角形,但我不想要一个三角形。我想要一个线条
  • polygon.isClosed()= false
  • First = 1,1
  • 最后= 100,100

1 个答案:

答案 0 :(得分:2)

你的意思是这样的:

QVector<QPointF> test{{1,1},{100,1},{100,100}};
QPainterPath path(test.front());
for (size_t i = 1; i < test.size(); ++i)
    path.lineTo(test[i]);
scene->addPath(path);

QPolygonF是一个多边形,而不是它未完成的线。它被绘制为一个闭合的多边形,其中笔定义的线条(可以是不可见的)由画笔填充(也可以是不可见的)。