Sur cette page

QPoint Class

La classe QPoint définit un point dans le plan avec une précision entière. En savoir plus…

En-tête : #include <QPoint>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Comparaisons de QPoint

CatégorieTypes comparables
égalitéQPoint
égalitéQPointF.

Fonctions publiques

QPoint()
QPoint(int xpos, int ypos)
bool isNull() const
int manhattanLength() const
int &rx()
int &ry()
void setX(int x)
void setY(int y)
CGPoint toCGPoint() const
(since 6.4) QPointF toPointF() const
QPoint transposed() const
int x() const
int y() const
QPoint &operator*=(double factor)
QPoint &operator*=(float factor)
QPoint &operator*=(int factor)
QPoint &operator+=(const QPoint &point)
QPoint &operator-=(const QPoint &point)
QPoint &operator/=(qreal divisor)

Membres publics statiques

int dotProduct(const QPoint &p1, const QPoint &p2)
bool operator!=(const QPoint &lhs, const QPoint &rhs)
QPoint operator*(const QPoint &point, double factor)
QPoint operator*(const QPoint &point, float factor)
QPoint operator*(const QPoint &point, int factor)
QPoint operator*(double factor, const QPoint &point)
QPoint operator*(float factor, const QPoint &point)
QPoint operator*(int factor, const QPoint &point)
QPoint operator+(const QPoint &point)
QPoint operator+(const QPoint &p1, const QPoint &p2)
QPoint operator-(const QPoint &p1, const QPoint &p2)
QPoint operator-(const QPoint &point)
QPoint operator/(const QPoint &point, qreal divisor)
QDataStream &operator<<(QDataStream &stream, const QPoint &point)
bool operator==(const QPoint &lhs, const QPoint &rhs)
QDataStream &operator>>(QDataStream &stream, QPoint &point)

Description détaillée

Un point est spécifié par une coordonnée x et une coordonnée y, auxquelles on peut accéder à l’aide des fonctions x() et y(). La fonction isNull() renvoie true si x et y sont tous deux définis à 0. Les coordonnées peuvent être définies (ou modifiées) à l’aide des fonctions setX() et setY(), ou encore à l’aide des fonctions rx() et ry(), qui renvoient des références aux coordonnées (permettant ainsi une manipulation directe).

Pour un point p donné, les instructions suivantes sont toutes équivalentes :

QPoint p;

p.setX(p.x() + 1);
p += QPoint(1, 0);
p.rx()++;

Un objet `QPoint` peut également être utilisé comme un vecteur : l’addition et la soustraction sont définies comme pour les vecteurs (chaque composante est additionnée séparément). Un objet `QPoint` peut également être divisé ou multiplié par un ` int ` ou un ` qreal`.

De plus, la classe QPoint fournit la fonction ` manhattanLength()`, qui donne une approximation peu coûteuse de la longueur de l’objet QPoint interprété comme un vecteur. Enfin, les objets QPoint peuvent être transmis en flux ainsi que comparés.

Voir également QPointF et QPolygon.

Documentation des fonctions membres

[constexpr noexcept] QPoint::QPoint()

Crée un point nul, c'est-à-dire dont les coordonnées sont (0, 0)

Voir aussi isNull().

[constexpr noexcept] QPoint::QPoint(int xpos, int ypos)

Crée un point aux coordonnées indiquées (xpos, ypos).

Voir également setX() et setY().

[static constexpr] int QPoint::dotProduct(const QPoint &p1, const QPoint &p2)

QPoint p( 3, 7);
QPoint q(-1, 4);
int dotProduct = QPoint::dotProduct(p, q);   // dotProduct becomes 25

Renvoie le produit scalaire de p1 et p2.

[constexpr noexcept] bool QPoint::isNull() const

Renvoie « true » si les coordonnées x et y sont toutes deux égales à 0 ; sinon, renvoie « false ».

[constexpr] int QPoint::manhattanLength() const

Renvoie la somme des valeurs absolues de x() et y(), communément appelée « longueur de Manhattan » du vecteur reliant l'origine au point. Par exemple :

QPoint oldPosition;

void MyWidget::mouseMoveEvent(QMouseEvent *event)
{
    QPoint point = event->pos() - oldPosition;
    if (point.manhattanLength() > 3){
        // the mouse has moved more than 3 pixels since the oldPosition
    }
}

Il s'agit d'une approximation utile et rapide à calculer de la longueur réelle :

double trueLength = std::sqrt(std::pow(x(), 2) + std::pow(y(), 2));

La tradition de la « longueur de Manhattan » trouve son origine dans le fait que ces distances s'appliquent aux voyageurs qui ne peuvent se déplacer que sur une grille rectangulaire, à l'image des rues de Manhattan.

[constexpr noexcept] int &QPoint::rx()

Renvoie une référence à la coordonnée x de ce point.

L'utilisation d'une référence permet de manipuler directement x. Par exemple :

QPoint p(1, 2);
p.rx()--;   // p becomes (0, 2)

Voir également x() et setX().

[constexpr noexcept] int &QPoint::ry()

Renvoie une référence à la coordonnée y de ce point.

L'utilisation d'une référence permet de manipuler directement la valeur y. Par exemple :

QPoint p(1, 2);
p.ry()++;   // p becomes (1, 3)

Voir également y() et setY().

[constexpr noexcept] void QPoint::setX(int x)

Définit la coordonnée x de ce point sur la coordonnée x fournie.

Voir également x() et setY().

[constexpr noexcept] void QPoint::setY(int y)

Définit la coordonnée y de ce point sur la coordonnée y fournie.

Voir également y() et setX().

[noexcept] CGPoint QPoint::toCGPoint() const

Crée un objet `CGPoint` à partir d'un objet ` QPoint`.

Voir aussi QPointF::fromCGPoint().

[constexpr noexcept, since 6.4] QPointF QPoint::toPointF() const

Renvoie ce point sous la forme d'un point à précision flottante.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi QPointF::toPoint().

[constexpr noexcept] QPoint QPoint::transposed() const

Renvoie un point dont les coordonnées x et y sont inversées :

QPoint{1, 2}.transposed() // {2, 1}

Voir également x(), y(), setX() et setY().

[constexpr noexcept] int QPoint::x() const

Renvoie la coordonnée x de ce point.

Voir également setX() et rx().

[constexpr noexcept] int QPoint::y() const

Renvoie la coordonnée y de ce point.

Voir aussi setY() et ry().

[constexpr] QPoint &QPoint::operator*=(double factor)

Multiplie les coordonnées de ce point par l'factor e spécifiée et renvoie une référence à ce point. Par exemple :

QPoint p(-1, 4);
p *= 2.5;    // p becomes (-3, 10)

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d'entiers. Utilisez ` QPointF ` pour obtenir une précision en virgule flottante.

Voir également operator/=().

[constexpr] QPoint &QPoint::operator*=(float factor)

Multiplie les coordonnées de ce point par l'factor e spécifiée et renvoie une référence à ce point.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont stockés sous forme d'entiers. Utilisez ` QPointF ` pour obtenir une précision en virgule flottante.

Voir également la fonction ` operator/=()`.

[constexpr] QPoint &QPoint::operator*=(int factor)

Multiplie les coordonnées de ce point par l'factor e spécifiée et renvoie une référence à ce point.

Voir aussi operator/=().

[constexpr] QPoint &QPoint::operator+=(const QPoint &point)

Ajoute l'point on indiquée à ce point et renvoie une référence à ce point. Par exemple :

QPoint p( 3, 7);
QPoint q(-1, 4);
p += q;    // p becomes (2, 11)

Voir aussi operator-=().

[constexpr] QPoint &QPoint::operator-=(const QPoint &point)

Soustrait l'point on indiquée de ce point et renvoie une référence à ce point. Par exemple :

QPoint p( 3, 7);
QPoint q(-1, 4);
p -= q;    // p becomes (4, 3)

Voir aussi ` operator+=()`.

[constexpr] QPoint &QPoint::operator/=(qreal divisor)

Divise à la fois x et y par l'divisor donnée, puis renvoie une référence à ce point. Par exemple :

QPoint p(-3, 10);
p /= 2.5;           // p becomes (-1, 4)

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont stockés sous forme d'entiers. Utilisez ` QPointF ` pour obtenir une précision en virgule flottante.

Voir également operator*=().

Éléments non membres associés

[constexpr noexcept] bool operator!=(const QPoint &lhs, const QPoint &rhs)

Renvoie « true » si « lhs » et « rhs » ne sont pas égaux ; sinon, renvoie « false ».

[constexpr] QPoint operator*(const QPoint &point, double factor)

Renvoie une copie de l'point donnée multipliée par l'factor donnée.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d’entiers. Utilisez QPointF pour obtenir une précision en virgule flottante.

Voir également QPoint::operator*=().

[constexpr] QPoint operator*(const QPoint &point, float factor)

Renvoie une copie de l'point donné, multipliée par l'factor donné.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d'entiers. Utilisez QPointF pour obtenir une précision en virgule flottante.

Voir également QPoint::operator*=().

[constexpr noexcept] QPoint operator*(const QPoint &point, int factor)

Renvoie une copie de l'point donné, multipliée par l'factor donné.

Voir aussi QPoint::operator*=().

[constexpr] QPoint operator*(double factor, const QPoint &point)

Renvoie une copie de l'point donné, multipliée par l'factor donné.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d'entiers. Utilisez QPointF pour obtenir une précision en virgule flottante.

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

Voir également QPoint::operator*=().

[constexpr] QPoint operator*(float factor, const QPoint &point)

Renvoie une copie de l'point donné multipliée par l'factor donné.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d'entiers. Utilisez QPointF pour obtenir une précision en virgule flottante.

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

Voir également QPoint::operator*=().

[constexpr noexcept] QPoint operator*(int factor, const QPoint &point)

Renvoie une copie de l'point donné, multipliée par l'factor donné.

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

Voir également QPoint::operator*=().

[constexpr noexcept] QPoint operator+(const QPoint &point)

Renvoie la valeur « point » sans la modifier.

[constexpr noexcept] QPoint operator+(const QPoint &p1, const QPoint &p2)

Renvoie un objet de type « QPoint » correspondant à la somme des points indiqués : p1 et p2; chaque composante est additionnée séparément.

Voir aussi QPoint::operator+=().

[constexpr noexcept] QPoint operator-(const QPoint &p1, const QPoint &p2)

Renvoie un objet ` QPoint ` obtenu en soustrayant ` p2 ` de ` p1` ; chaque composante est soustraite séparément.

Voir également QPoint::operator-=().

[constexpr noexcept] QPoint operator-(const QPoint &point)

Renvoie un objet de type ` QPoint ` obtenu en inversant le signe des deux composantes de l'point donné.

Équivalent à ` QPoint(0,0) - point`.

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

[constexpr] QPoint operator/(const QPoint &point, qreal divisor)

Renvoie l'QPoint e obtenu en divisant les deux composantes de l'point donnée par l'divisor donnée.

Notez que le résultat est arrondi à l'entier le plus proche, car les points sont représentés sous forme d'entiers. Utilisez QPointF pour obtenir une précision en virgule flottante.

Voir également QPoint::operator/=().

QDataStream &operator<<(QDataStream &stream, const QPoint &point)

Écrit l'point on fournie dans le stream on indiquée et renvoie une référence au flux.

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

[constexpr noexcept] bool operator==(const QPoint &lhs, const QPoint &rhs)

Renvoie « true » si « lhs » et « rhs » sont égaux ; sinon, renvoie « false ».

QDataStream &operator>>(QDataStream &stream, QPoint &point)

Lit un point à partir du fichier stream dans le fichier point 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.