Auf dieser Seite

QPolygon Class

Die Klasse „QPolygon“ stellt eine Liste von Punkten mit ganzzahliger Genauigkeit bereit. Mehr...

Header: #include <QPolygon>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Erbt von: QList

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Funktionen

QPolygon()
QPolygon(const QList<QPoint> &points)
QPolygon(const QRect &rectangle, bool closed = false)
QRect boundingRect() const
bool containsPoint(const QPoint &point, Qt::FillRule fillRule) const
QPolygon intersected(const QPolygon &r) const
bool intersects(const QPolygon &p) const
void point(int index, int *x, int *y) const
QPoint point(int index) const
void putPoints(int index, int nPoints, int firstx, int firsty, ...)
void putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)
void setPoint(int index, int x, int y)
void setPoint(int index, const QPoint &point)
void setPoints(int nPoints, const int *points)
void setPoints(int nPoints, int firstx, int firsty, ...)
QPolygon subtracted(const QPolygon &r) const
void swap(QPolygon &other)
(since 6.4) QPolygonF toPolygonF() const
void translate(int dx, int dy)
void translate(const QPoint &offset)
QPolygon translated(int dx, int dy) const
QPolygon translated(const QPoint &offset) const
QPolygon united(const QPolygon &r) const
operator QVariant() const
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)

Ausführliche Beschreibung

Ein QPolygon-Objekt ist ein „ QList “ <QPoint>. Der einfachste Weg, einem QPolygon Punkte hinzuzufügen, ist die Verwendung des Streaming-Operators von „ QList “, wie unten dargestellt:

QPolygon polygon;
polygon << QPoint(10, 20) << QPoint(20, 30);

Zusätzlich zu den von „ QList “ bereitgestellten Funktionen bietet „QPolygon“ einige punktspezifische Funktionen.

Jeder Punkt in einem Polygon kann abgerufen werden, indem sein Index an die Funktion ` point()` übergeben wird. Um das Polygon zu füllen, bietet QPolygon die Funktion ` setPoint()` zum Setzen des Punktes an einem bestimmten Index, die Funktion ` setPoints()` zum Setzen aller Punkte im Polygon (wobei die Größe entsprechend der angegebenen Punktanzahl angepasst wird) sowie die Funktion ` putPoints()`, die eine bestimmte Anzahl von Punkten ab einem angegebenen Index in das Polygon kopiert (wobei die Größe des Polygons bei Bedarf angepasst wird).

QPolygon stellt die Funktionen „ boundingRect()“ und „ translate()“ für Geometrieoperationen bereit. Verwenden Sie die Funktion „ QTransform::map()“ für allgemeinere Transformationen von QPolygons.

Die Klasse „QPolygon“ wird implizit gemeinsam genutzt.

Siehe auch „ QList “, „ QPolygonF “ und „ QLine “.

Dokumentation zu den Mitgliedsfunktionen

[constexpr noexcept default] QPolygon::QPolygon()

Erstellt ein Polygon ohne Punkte.

Siehe auch „ QList::isEmpty()“.

QPolygon::QPolygon(const QList<QPoint> &points)

Erstellt ein Polygon, das die angegebene points enthält.

Siehe auch setPoints().

QPolygon::QPolygon(const QRect &rectangle, bool closed = false)

Erstellt ein Polygon aus dem angegebenen „ rectangle “. Ist „ closed “ falsch, enthält das Polygon lediglich die vier Punkte des Rechtecks im Uhrzeigersinn angeordnet; andernfalls wird der fünfte Punkt des Polygons auf „ rectangle.topLeft()“ gesetzt.

Beachten Sie, dass sich die rechte untere Ecke des Rechtecks an der Position (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()) befindet.

Siehe auch ` setPoints()`.

QRect QPolygon::boundingRect() const

Gibt das Umrandungsrechteck des Polygons zurück oder QRect(0, 0, 0, 0), wenn das Polygon leer ist.

Siehe auch ` QList::isEmpty()`.

bool QPolygon::containsPoint(const QPoint &point, Qt::FillRule fillRule) const

Gibt „ true “ zurück, wenn sich die angegebene „ point “ gemäß dem angegebenen „ fillRule “ innerhalb des Polygons befindet; andernfalls wird „ false “ zurückgegeben.

QPolygon QPolygon::intersected(const QPolygon &r) const

Gibt ein Polygon zurück, das die Schnittmenge dieses Polygons und r darstellt.

Bei Verknüpfungsoperationen mit Polygonen werden die Polygone als Flächen behandelt. Nicht geschlossene Polygone werden implizit als geschlossen behandelt.

Siehe auch intersects().

bool QPolygon::intersects(const QPolygon &p) const

Gibt „ true “ zurück, wenn das aktuelle Polygon an irgendeiner Stelle das angegebene Polygon p schneidet. Gibt außerdem „ true “ zurück, wenn das aktuelle Polygon einen Teil von p enthält oder von diesem Teil enthalten ist.

Bei Verknüpfungsoperationen mit Polygonen werden die Polygone als Flächen behandelt. Nicht geschlossene Polygone werden implizit als geschlossen behandelt.

Siehe auch „ intersected()“.

void QPolygon::point(int index, int *x, int *y) const

Extrahiert die Koordinaten des Punktes an der angegebenen Adresse index in *x und *y (sofern es sich um gültige Zeiger handelt).

Siehe auch setPoint().

QPoint QPolygon::point(int index) const

Gibt den Punkt an der angegebenen Koordinaten index zurück.

Dies ist eine überladene Funktion.

void QPolygon::putPoints(int index, int nPoints, int firstx, int firsty, ...)

Kopiert nPoints Punkte aus der Liste der variablen Argumente in dieses Polygon aus der angegebenen Datei index.

Die Punkte werden als Folge von Ganzzahlen angegeben, beginnend mit firstx, gefolgt von firsty usw. Das Polygon wird in seiner Größe angepasst, wenn index+nPoints seine aktuelle Größe überschreitet.

Der Beispielcode erstellt ein Polygon mit den drei Punkten (4,5), (6,7) und (8,9), indem das Polygon von 1 auf 3 Punkte erweitert wird:

QPolygon polygon(1);
polygon[0] = QPoint(4, 5);
polygon.putPoints(1, 2, 6,7, 8,9);

Der folgende Code führt zum gleichen Ergebnis, allerdings überschreibt die Funktion `putPoints()` hier die vorhandenen Punkte, anstatt sie zu erweitern:

QPolygon polygon(3);
polygon.putPoints(0, 3, 4,5, 0,0, 8,9);
polygon.putPoints(1, 1, 6,7);

Siehe auch ` setPoints()`.

void QPolygon::putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)

Kopiert nPoints Punkte aus dem angegebenen fromIndex (Standardwert: 0) in fromPolygon in dieses Polygon, beginnend bei der angegebenen index. Beispiel:

QPolygon polygon1;
polygon1.putPoints(0, 3, 1,2, 0,0, 5,6);
// polygon1 is now the three-point polygon(1,2, 0,0, 5,6);

QPolygon polygon2;
polygon2.putPoints(0, 3, 4,4, 5,5, 6,6);
// polygon2 is now (4,4, 5,5, 6,6);

polygon1.putPoints(2, 3, polygon2);
// polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);

Dies ist eine überladene Funktion.

void QPolygon::setPoint(int index, int x, int y)

Setzt den Punkt an der angegebenen Adresse index auf den durch (x, y) angegebenen Punkt.

Siehe auch point(), putPoints() und setPoints().

void QPolygon::setPoint(int index, const QPoint &point)

Setzt den Punkt an der angegebenen Koordinate ` index ` auf die angegebene Koordinate ` point`.

Dies ist eine überladene Funktion.

void QPolygon::setPoints(int nPoints, const int *points)

Passen Sie die Größe des Polygons auf nPoints an und füllen Sie es mit dem angegebenen points.

Der Beispielcode erstellt ein Polygon mit den beiden Punkten (10, 20) und (30, 40):

static const int points[] = { 10, 20, 30, 40 };
QPolygon polygon;
polygon.setPoints(2, points);

Siehe auch setPoint() und putPoints().

void QPolygon::setPoints(int nPoints, int firstx, int firsty, ...)

Passen Sie die Größe des Polygons auf nPoints an und füllen Sie es mit den Punkten, die durch die Liste der variablen Argumente angegeben werden. Die Punkte werden als Folge von Ganzzahlen angegeben, beginnend mit firstx, gefolgt von firsty und so weiter.

Der Beispielcode erstellt ein Polygon mit den beiden Punkten (10, 20) und (30, 40):

QPolygon polygon;
polygon.setPoints(2, 10, 20, 30, 40);

Dies ist eine überladene Funktion.

QPolygon QPolygon::subtracted(const QPolygon &r) const

Gibt ein Polygon zurück, das um das Polygon „ r “ von diesem Polygon abgezogen wurde.

Bei Verknüpfungsoperationen mit Polygonen werden die Polygone als Flächen behandelt. Nicht geschlossene Polygone werden implizit als geschlossen behandelt.

[noexcept] void QPolygon::swap(QPolygon &other)

Tauscht dieses Polygon mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[since 6.4] QPolygonF QPolygon::toPolygonF() const

Gibt dieses Polygon als Polygon mit Gleitkommagenauigkeit zurück.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch „ QPolygonF::toPolygon()“.

void QPolygon::translate(int dx, int dy)

Verschiebt alle Punkte des Polygons um (dx, dy).

Siehe auch translated().

void QPolygon::translate(const QPoint &offset)

Verschiebt alle Punkte des Polygons um den angegebenen „ offset “.

Dies ist eine überladene Funktion.

Siehe auch ` translated()`.

QPolygon QPolygon::translated(int dx, int dy) const

Gibt eine Kopie des Polygons zurück, das um (dx, dy) verschoben wurde.

Siehe auch translate().

QPolygon QPolygon::translated(const QPoint &offset) const

Gibt eine Kopie des Polygons zurück, die um den angegebenen Wert ` offset` verschoben wurde.

Dies ist eine überladene Funktion.

Siehe auch ` translate()`.

QPolygon QPolygon::united(const QPolygon &r) const

Gibt ein Polygon zurück, das die Vereinigung dieses Polygons und von r darstellt.

Bei Vereinigungsoperationen mit Polygonen werden die Polygone als Flächen behandelt und das Polygon implizit geschlossen.

Siehe auch intersected() und subtracted().

QPolygon::operator QVariant() const

Gibt das Polygon als QVariant

Verwandte Nicht-Mitglieder

QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)

Schreibt das angegebene ` polygon ` in den angegebenen ` stream` und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)

Liest ein Polygon aus dem angegebenen „ stream “ in den angegebenen „ polygon “ ein und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.