Sur cette page

QPolygon Class

La classe QPolygon fournit une liste de points avec une précision entière. Plus d'informations...

En-tête : #include <QPolygon>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : QList

Note : Toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

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)

Description détaillée

Un objet QPolygon est un QList<QPoint>. La manière la plus simple d'ajouter des points à un QPolygon est d'utiliser l'opérateur de flux de QList, comme illustré ci-dessous :

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

Outre les fonctions fournies par QList, QPolygon fournit des fonctions spécifiques aux points.

Chaque point d'un polygone peut être récupéré en transmettant son index à la fonction point(). Pour remplir le polygone, QPolygon fournit la fonction setPoint() pour définir le point à un index donné, la fonction setPoints() pour définir tous les points du polygone (en le redimensionnant au nombre de points donné), et la fonction putPoints() qui copie un certain nombre de points donnés dans le polygone à partir d'un index spécifié (en redimensionnant le polygone si nécessaire).

QPolygon fournit les fonctions boundingRect() et translate() pour les fonctions géométriques. Utilisez la fonction QTransform::map() pour des transformations plus générales des QPolygones.

La classe QPolygon est implicitement partagée.

Voir également QList, QPolygonF, et QLine.

Documentation des fonctions membres

[constexpr noexcept] QPolygon::QPolygon()

Construit un polygone sans points.

Voir aussi QList::isEmpty().

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

Construit un polygone contenant l'adresse points spécifiée.

Voir aussi setPoints().

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

Construit un polygone à partir de rectangle. Si closed est faux, le polygone contient simplement les quatre points du rectangle ordonnés dans le sens des aiguilles d'une montre, sinon le cinquième point du polygone est fixé à rectangle.topLeft().

Notez que le coin inférieur droit du rectangle est situé à (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).

Voir également setPoints().

QRect QPolygon::boundingRect() const

Renvoie le rectangle de délimitation du polygone, ou QRect(0, 0, 0, 0) si le polygone est vide.

Voir aussi QList::isEmpty().

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

Renvoie true si l'objet donné point se trouve à l'intérieur du polygone selon fillRule; sinon, renvoie false.

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

Renvoie un polygone qui est l'intersection de ce polygone et de r.

Les opérations de définition sur les polygones traiteront les polygones comme des zones. Les polygones non fermés seront traités comme implicitement fermés.

Voir aussi intersects().

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

Renvoie true si le polygone actuel intersecte en tout point le polygone donné p. Renvoie également true si le polygone actuel contient ou est contenu par une partie quelconque de p.

Les opérations de définition sur les polygones traiteront les polygones comme des zones. Les polygones non fermés seront traités comme implicitement fermés.

Voir aussi intersected().

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

Extrait les coordonnées du point situé à l'adresse index vers *x et *y (s'il s'agit de pointeurs valides).

Voir aussi setPoint().

QPoint QPolygon::point(int index) const

Renvoie le point situé à l'adresse index.

Il s'agit d'une fonction surchargée.

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

Copie les points nPoints de la liste d'arguments variables dans ce polygone à partir de index.

Les points sont donnés sous la forme d'une séquence d'entiers, en commençant par firstx puis firsty, et ainsi de suite. Le polygone est redimensionné si index+nPoints dépasse sa taille actuelle.

Le code de l'exemple crée un polygone avec trois points (4,5), (6,7) et (8,9), en étendant le polygone de 1 à 3 points :

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

Le code suivant donne le même résultat, mais ici la fonction putPoints() écrase au lieu d'étendre :

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

Voir aussi setPoints().

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

Copie les points nPoints du site fromIndex ( 0 par défaut) dans fromPolygon dans ce polygone, en commençant par le site index. Par exemple :

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);

Ceci est une fonction surchargée.

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

Définit le point à l'adresse index donnée comme étant le point spécifié par (x, y).

Voir aussi point(), putPoints() et setPoints().

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

Fixe le point situé à l'adresse index au point situé à l'adresse point.

Il s'agit d'une fonction surchargée.

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

Redimensionne le polygone à nPoints et le remplit avec les données points.

L'exemple de code crée un polygone avec deux points (10, 20) et (30, 40) :

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

Voir aussi setPoint() et putPoints().

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

Redimensionne le polygone à nPoints et le remplit avec les points spécifiés par la liste d'arguments variables. Les points sont donnés sous la forme d'une séquence d'entiers, en commençant par firstx puis firsty, et ainsi de suite.

L'exemple de code crée un polygone avec deux points (10, 20) et (30, 40) :

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

Il s'agit d'une fonction surchargée.

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

Renvoie un polygone qui est r soustrait de ce polygone.

Les opérations de définition sur les polygones traiteront les polygones comme des zones. Les polygones non fermés seront traités comme implicitement fermés.

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

Échange ce polygone avec other. Cette opération est très rapide et n'échoue jamais.

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

Renvoie ce polygone en tant que polygone avec une précision en virgule flottante.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi QPolygonF::toPolygon().

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

Traduit tous les points du polygone par (dx, dy).

Voir également translated().

void QPolygon::translate(const QPoint &offset)

Traduit tous les points du polygone par la valeur donnée offset.

Il s'agit d'une fonction surchargée.

Voir aussi translated().

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

Renvoie une copie du polygone traduit par (dx, dy).

Voir aussi translate().

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

Renvoie une copie du polygone qui est translaté par la valeur donnée offset.

Il s'agit d'une fonction surchargée.

Voir aussi translate().

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

Renvoie un polygone qui est l'union de ce polygone et de r.

Les opérations Set sur les polygones traiteront les polygones comme des zones et fermeront implicitement le polygone.

Voir aussi intersected() et subtracted().

QPolygon::operator QVariant() const

Renvoie le polygone sous forme de QVariant

Non-membres apparentés

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

Écrit la donnée polygon dans la donnée stream, et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

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

Lit un polygone à partir de l'adresse stream dans l'adresse polygon, et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

© 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.