QPoint Class

Die Klasse QPoint definiert einen Punkt in der Ebene mit ganzzahliger Genauigkeit. Mehr...

Kopfzeile: #include <QPoint>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Diese Klasse ist gleichwertig-vergleichbar.

Diese Klasse ist gleichsetzbar mit QPointF.

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Funktionen

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)

Statische öffentliche Mitglieder

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)

Detaillierte Beschreibung

Ein Punkt wird durch eine x-Koordinate und eine y-Koordinate angegeben, auf die mit den Funktionen x() und y() zugegriffen werden kann. Die Funktion isNull() gibt true zurück, wenn sowohl x als auch y auf 0 gesetzt sind. Die Koordinaten können mit den Funktionen setX() und setY() gesetzt (oder geändert) werden, oder alternativ mit den Funktionen rx() und ry(), die Referenzen auf die Koordinaten zurückgeben (was eine direkte Manipulation ermöglicht).

In Bezug auf einen Punkt p sind die folgenden Anweisungen alle äquivalent:

QPoint p;

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

Ein QPoint-Objekt kann auch als Vektor verwendet werden: Addition und Subtraktion sind wie bei Vektoren definiert (jede Komponente wird einzeln addiert). Ein QPoint-Objekt kann auch durch ein int oder ein qreal dividiert oder multipliziert werden.

Darüber hinaus bietet die QPoint-Klasse die Funktion manhattanLength(), die eine kostengünstige Annäherung an die Länge des als Vektor interpretierten QPoint-Objekts liefert. Schließlich können QPoint-Objekte sowohl gestreamt als auch verglichen werden.

Siehe auch QPointF und QPolygon.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept] QPoint::QPoint()

Konstruiert einen Nullpunkt, d. h. mit den Koordinaten (0, 0)

Siehe auch isNull().

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

Konstruiert einen Punkt mit den angegebenen Koordinaten (xpos, ypos).

Siehe auch setX() und 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

Gibt das Punktprodukt von p1 und p2 zurück.

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

Gibt true zurück, wenn sowohl die x- als auch die y-Koordinaten auf 0 gesetzt sind, andernfalls false.

[constexpr] int QPoint::manhattanLength() const

Gibt die Summe der absoluten Werte von x() und y() zurück, traditionell bekannt als die "Manhattan-Länge" des Vektors vom Ursprung zum Punkt. Ein Beispiel:

QPoint oldPosition;

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

Dies ist ein nützlicher und schnell zu berechnender Näherungswert für die wahre Länge:

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

Die Tradition der "Manhattan-Länge" rührt daher, dass solche Entfernungen für Reisende gelten, die sich nur auf einem rechteckigen Gitter bewegen können, wie die Straßen von Manhattan.

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

Gibt eine Referenz auf die x-Koordinate dieses Punktes zurück.

Die Verwendung eines Verweises ermöglicht eine direkte Manipulation von x. Zum Beispiel:

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

Siehe auch x() und setX().

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

Gibt eine Referenz auf die y-Koordinate dieses Punktes zurück.

Die Verwendung eines Verweises ermöglicht eine direkte Manipulation von y. Zum Beispiel:

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

Siehe auch y() und setY().

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

Setzt die x-Koordinate dieses Punktes auf die angegebene x Koordinate.

Siehe auch x() und setY().

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

Setzt die y-Koordinate dieses Punktes auf die angegebene y Koordinate.

Siehe auch y() und setX().

[noexcept] CGPoint QPoint::toCGPoint() const

Erzeugt einen CGPoint aus einem QPoint.

Siehe auch QPointF::fromCGPoint().

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

Gibt diesen Punkt als Punkt mit Fließkommagenauigkeit zurück.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QPointF::toPoint().

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

Gibt einen Punkt mit ausgetauschten x- und y-Koordinaten zurück:

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

Siehe auch x(), y(), setX(), und setY().

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

Gibt die x-Koordinate dieses Punktes zurück.

Siehe auch setX() und rx().

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

Gibt die y-Koordinate dieses Punktes zurück.

Siehe auch setY() und ry().

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

Multipliziert die Koordinaten dieses Punktes mit dem angegebenen factor und gibt einen Verweis auf diesen Punkt zurück. Ein Beispiel:

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

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da die Punkte als Ganzzahlen gespeichert werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch operator/=().

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

Multipliziert die Koordinaten dieses Punktes mit dem angegebenen factor und gibt einen Verweis auf diesen Punkt zurück.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da Punkte als Ganzzahlen gespeichert werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch operator/=().

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

Multipliziert die Koordinaten dieses Punktes mit dem angegebenen factor und gibt einen Verweis auf diesen Punkt zurück.

Siehe auch operator/=().

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

Fügt den angegebenen point zu diesem Punkt hinzu und gibt einen Verweis auf diesen Punkt zurück. Zum Beispiel:

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

Siehe auch operator-=().

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

Subtrahiert den angegebenen point von diesem Punkt und gibt einen Verweis auf diesen Punkt zurück. Zum Beispiel:

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

Siehe auch operator+=().

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

Dies ist eine überladene Funktion.

Teilt sowohl x als auch y durch den angegebenen divisor und gibt einen Verweis auf diesen Punkt zurück. Ein Beispiel:

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

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da die Punkte als Ganzzahlen gehalten werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch operator*=().

Verwandte Nicht-Mitglieder

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

Gibt true zurück, wenn lhs und rhs nicht gleich sind; andernfalls wird false zurückgegeben.

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

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da Punkte als Ganzzahlen gespeichert werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch QPoint::operator*=().

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

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da Punkte als Ganzzahlen gespeichert werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch QPoint::operator*=().

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

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Siehe auch QPoint::operator*=().

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

Dies ist eine überladene Funktion.

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da Punkte als Ganzzahlen gehalten werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch QPoint::operator*=().

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

Dies ist eine überladene Funktion.

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da Punkte als Ganzzahlen gehalten werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch QPoint::operator*=().

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

Dies ist eine überladene Funktion.

Gibt eine Kopie des angegebenen point multipliziert mit dem angegebenen factor zurück.

Siehe auch QPoint::operator*=().

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

Gibt point unverändert zurück.

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

Gibt ein Objekt QPoint zurück, das die Summe der angegebenen Punkte p1 und p2 ist; jede Komponente wird separat addiert.

Siehe auch QPoint::operator+=().

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

Gibt ein QPoint Objekt zurück, das durch Subtraktion von p2 von p1 gebildet wird; jede Komponente wird separat subtrahiert.

Siehe auch QPoint::operator-=().

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

Dies ist eine überladene Funktion.

Gibt ein QPoint -Objekt zurück, das durch Ändern des Vorzeichens der beiden Komponenten der angegebenen point gebildet wird.

Äquivalent zu QPoint(0,0) - point.

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

Gibt die QPoint zurück, die sich aus der Division der beiden Komponenten der angegebenen point durch die angegebene divisor ergibt.

Beachten Sie, dass das Ergebnis auf die nächste Ganzzahl gerundet wird, da die Punkte als Ganzzahlen gehalten werden. Verwenden Sie QPointF für Fließkommagenauigkeit.

Siehe auch QPoint::operator/=().

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

Schreibt den angegebenen point in den angegebenen stream und gibt eine Referenz auf den Stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

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

Gibt true zurück, wenn lhs und rhs gleich sind; andernfalls wird false zurückgegeben.

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

Liest einen Punkt aus dem angegebenen stream in den angegebenen point und gibt eine Referenz auf den Stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

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