Sur cette page

QPolygon Class

La classe QPolygon fournit une liste de points avec une précision entière. En savoir plus…

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

Remarque : 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 une classe QList<QPoint>. La manière la plus simple d’ajouter des points à un QPolygon consiste à utiliser l’opérateur de streaming de QList, comme illustré ci-dessous :

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

En plus des fonctions fournies par QList, QPolygon propose certaines 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 en fonction du nombre de points spécifié), et la fonction ` putPoints()` qui copie un nombre donné de points 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 opérations géométriques. Utilisez la fonction ` QTransform::map()` pour des transformations plus générales des QPolygons.

La classe QPolygon est implicitement partagée.

Voir également QList, QPolygonF et QLine.

Documentation des fonctions membres

[constexpr noexcept default] QPolygon::QPolygon()

Crée un polygone sans aucun point.

Voir aussi QList::isEmpty().

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

Crée un polygone contenant l'points spécifiée.

Voir également setPoints().

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

Construit un polygone à partir de l'rectangle donné. Si closed est faux, le polygone ne contient que les quatre sommets du rectangle, classés dans le sens des aiguilles d'une montre ; dans le cas contraire, le cinquième sommet du polygone est défini sur rectangle.topLeft().

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

Voir également setPoints().

QRect QPolygon::boundingRect() const

Renvoie le rectangle englobant 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'point donné se trouve à l'intérieur du polygone selon l'fillRule spécifié ; sinon, renvoie « false ».

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

Renvoie un polygone correspondant à l'intersection de ce polygone et de r.

Les opérations d'ensemble sur les polygones traitent ces derniers comme des surfaces. Les polygones non fermés sont considérés comme implicitement fermés.

Voir également intersects().

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

Renvoie « true » si le polygone actuel coupe en un point quelconque le polygone donné « p ». Renvoie également « true » si le polygone actuel contient ou est contenu par une partie quelconque de « p ».

Les opérations d’ensemble sur les polygones traitent ces derniers comme des surfaces. Les polygones non fermés sont traités comme implicitement fermés.

Voir également intersected().

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

Extrait les coordonnées du point situé à l'adresse donnée index et les stocke dans *x et *y (si ce sont des pointeurs valides).

Voir également setPoint().

QPoint QPolygon::point(int index) const

Renvoie le point situé à l'index e indiquée.

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

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

La fonction « nPoints » copie les points de la liste d'arguments variables dans ce polygone à partir de l'index.

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

L'exemple de code 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 les points existants au lieu de les ajouter :

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

Voir également ` setPoints()`.

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

Copie les points d'nPoints s de l'fromIndex donné (0 par défaut) dans fromPolygon vers ce polygone, en commençant par le index spécifié. 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);

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

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

Définit le point situé à l'adresse index sur le point spécifié par (x, y).

Voir également point(), putPoints() et setPoints().

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

Définit le point situé à l'index spécifiée sur l'point spécifiée.

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

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

Redimensionne le polygone à nPoints et le remplit avec l'points fournie.

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 également ` 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 fournis sous la forme d'une séquence d'entiers, 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 obtenu en soustrayant r de ce polygone.

Les opérations d'ensemble sur les polygones traitent ces derniers comme des surfaces. Les polygones non fermés sont traités comme étant implicitement fermés.

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

Permute ce polygone avec other. Cette opération est très rapide et ne rencontre jamais d'échec.

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

Renvoie ce polygone sous forme de polygone avec une précision en virgule flottante.

Cette fonction a été introduite dans Qt 6.4.

Voir également QPolygonF::toPolygon().

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

Translate tous les points du polygone de (dx, dy).

Voir également translated().

void QPolygon::translate(const QPoint &offset)

Translate tous les points du polygone selon l'offset e indiquée.

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

Voir également translated().

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

Renvoie une copie du polygone translatée selon les coordonnées (dx, dy).

Voir également la fonction translate().

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

Renvoie une copie du polygone translatée selon l'offset e spécifiée.

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

Voir également ` translate()`.

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

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

Les opérations d'ensemble sur les polygones traitent ces derniers comme des zones et ferment implicitement le polygone.

Voir également intersected() et subtracted().

QPolygon::operator QVariant() const

Renvoie le polygone sous la forme d'un QVariant

Non-membres concernés

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

Écrit l'polygon donné dans l'stream spécifié, puis renvoie une référence au flux.

Voir également Sérialisation des types de données Qt.

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

Lit un polygone à partir du fichier stream dans le fichier polygon, et renvoie une référence au flux.

Voir également 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.