2016-06-25 4 views
1

Wie kann ich einen offen Polygon zu erstellen, mit der Verwendung eines QVector das Polygon zu initialisieren, in Qt?Erstellen Sie ein offenes Polygon in Qt (Linienstreifen)

QPolygonF schließt immer das Polygon und verbindet den letzten Punkt mit dem ersten.

Vielen Dank für Hilfe

[Bearbeiten]

In QGraphicsScene

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

Ausgang:

  • ein Dreieck, aber ich will nicht ein Dreieck. Ich möchte ein Schnurzughauptkörpers
  • polygon.isClosed() = false
  • Erste = 1,1
  • Last = 100.100
+0

lesen Sie einfach docs http://doc.qt.io/qt-4.8/qpolygonf.html#isClosed oder Code zur Verfügung stellen, der das Problem zeigt. –

Antwort

2

Haben Sie so etwas wie dies bedeuten:

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 ist ein Polygon, nicht seine unfertige Linie. Es wird als geschlossenes Polygon gezeichnet, mit der Stift-definierten Linie (kann unsichtbar sein), gefüllt mit Pinsel (kann auch unsichtbar sein).

Verwandte Themen