QPointF Class | Qt Core | Qt 6.11.0
Description: The QPointF class defines a point in the plane using floating point precision.

- Qt 6.11
- Qt Core
- C++ Classes
- QPointF
- Qt 6.11.0 Reference Documentation

# QPointF Class

The QPointF class defines a point in the plane using floating point precision. More...

Header: | `#include <QPointF>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Core)` `target_link_libraries(mytarget PRIVATE Qt6::Core)`
qmake: | `QT += core`

- List of all members, including inherited members
- QPointF is part of Painting Classes.

This class is equality-comparable.

This class is equality-comparable with QPoint.

Note: All functions in this class are reentrant.

## Public Functions

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

## Static Public Members

qreal | dotProduct(const QPointF &p1, const QPointF &p2)
QPointF | fromCGPoint(CGPoint point)

## Related Non-Members

`(since 6.8)` bool | qFuzzyCompare(const QPointF &p1, const QPointF &p2)
`(since 6.8)` bool | qFuzzyIsNull(const QPointF &point)
bool | operator!=(const QPointF &lhs, const QPointF &rhs)
QPointF | operator*(const QPointF &point, qreal factor)
QPointF | operator*(qreal factor, const QPointF &point)
QPointF | operator+(const QPointF &point)
QPointF | operator+(const QPointF &p1, const QPointF &p2)
QPointF | operator-(const QPointF &p1, const QPointF &p2)
QPointF | operator-(const QPointF &point)
QPointF | operator/(const QPointF &point, qreal divisor)
QDataStream & | operator<<(QDataStream &stream, const QPointF &point)
bool | operator==(const QPointF &lhs, const QPointF &rhs)
QDataStream & | operator>>(QDataStream &stream, QPointF &point)

## Detailed Description

A point is specified by a x coordinate and an y coordinate which can be accessed using the x() and y() functions. The coordinates of the point are specified using finite floating point numbers for accuracy. The isNull() function returns `true` if both x and y are set to 0.0. The coordinates can be set (or altered) using the setX() and setY() functions, or alternatively the rx() and ry() functions which return references to the coordinates (allowing direct manipulation).

Given a point p, the following statements are all equivalent:

     QPointF p;

     p.setX(p.x() + 1.0);
     p += QPointF(1.0, 0.0);
     p.rx()++;

A QPointF object can also be used as a vector: Addition and subtraction are defined as for vectors (each component is added separately). A QPointF object can also be divided or multiplied by an `int` or a `qreal`.

In addition, the QPointF class provides a constructor converting a QPoint object into a QPointF object, and a corresponding toPoint() function which returns a QPoint copy of this point. Finally, QPointF objects can be streamed as well as compared.

See also QPoint and QPolygonF.

## Member Function Documentation

### `[constexpr noexcept]` QPointF::QPointF()

Constructs a null point, i.e. with coordinates (0.0, 0.0)

See also isNull().

### `[constexpr noexcept]` QPointF::QPointF(const QPoint &point)

Constructs a copy of the given point.

See also toPoint() and QPoint::toPointF().

### `[constexpr noexcept]` QPointF::QPointF(qreal xpos, qreal ypos)

Constructs a point with the given coordinates (xpos, ypos).

See also setX() and setY().

### `[static constexpr]` qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)

     QPointF p( 3.1, 7.1);
     QPointF q(-1.0, 4.1);
     qreal dotProduct = QPointF::dotProduct(p, q);   // dotProduct becomes 26.01

Returns the dot product of p1 and p2.

### `[static noexcept]` QPointF QPointF::fromCGPoint(CGPoint point)

Creates a QRectF from CGPoint point.

See also toCGPoint().

### `[noexcept]` bool QPointF::isNull() const

Returns `true` if both the x and y coordinates are set to 0.0 (ignoring the sign); otherwise returns `false`.

### `[constexpr]` qreal QPointF::manhattanLength() const

Returns the sum of the absolute values of x() and y(), traditionally known as the "Manhattan length" of the vector from the origin to the point.

See also QPoint::manhattanLength().

### `[constexpr noexcept]` qreal &QPointF::rx()

Returns a reference to the x coordinate of this point.

Using a reference makes it possible to directly manipulate x. For example:

     QPointF p(1.1, 2.5);
     p.rx()--;   // p becomes (0.1, 2.5)

See also x() and setX().

### `[constexpr noexcept]` qreal &QPointF::ry()

Returns a reference to the y coordinate of this point.

Using a reference makes it possible to directly manipulate y. For example:

     QPointF p(1.1, 2.5);
     p.ry()++;   // p becomes (1.1, 3.5)

See also y() and setY().

### `[constexpr noexcept]` void QPointF::setX(qreal x)

Sets the x coordinate of this point to the given finite x coordinate.

See also x() and setY().

### `[constexpr noexcept]` void QPointF::setY(qreal y)

Sets the y coordinate of this point to the given finite y coordinate.

See also y() and setX().

### `[noexcept]` CGPoint QPointF::toCGPoint() const

Creates a CGPoint from a QPointF.

See also fromCGPoint().

### `[constexpr]` QPoint QPointF::toPoint() const

Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rounded coordinates.

See also QPointF() and QPoint::toPointF().

### `[constexpr noexcept]` QPointF QPointF::transposed() const

Returns a point with x and y coordinates exchanged:

     QPointF{1.0, 2.0}.transposed() // {2.0, 1.0}

See also x(), y(), setX(), and setY().

### `[constexpr noexcept]` qreal QPointF::x() const

Returns the x coordinate of this point.

See also setX() and rx().

### `[constexpr noexcept]` qreal QPointF::y() const

Returns the y coordinate of this point.

See also setY() and ry().

### `[constexpr]` QPointF &QPointF::operator*=(qreal factor)

Multiplies this point's coordinates by the given finite factor, and returns a reference to this point. For example:

     QPointF p(-1.1, 4.1);
     p *= 2.5;    // p becomes (-2.75, 10.25)

See also operator/=().

### `[constexpr]` QPointF &QPointF::operator+=(const QPointF &point)

Adds the given point to this point and returns a reference to this point. For example:

     QPointF p( 3.1, 7.1);
     QPointF q(-1.0, 4.1);
     p += q;    // p becomes (2.1, 11.2)

See also operator-=().

### `[constexpr]` QPointF &QPointF::operator-=(const QPointF &point)

Subtracts the given point from this point and returns a reference to this point. For example:

     QPointF p( 3.1, 7.1);
     QPointF q(-1.0, 4.1);
     p -= q;    // p becomes (4.1, 3.0)

See also operator+=().

### `[constexpr]` QPointF &QPointF::operator/=(qreal divisor)

Divides both x and y by the given divisor, and returns a reference to this point. For example:

     QPointF p(-2.75, 10.25);
     p /= 2.5;           // p becomes (-1.1, 4.1)

The divisor must not be zero or NaN.

See also operator*=().

## Related Non-Members

### `[constexpr noexcept, since 6.8]` bool qFuzzyCompare(const QPointF &p1, const QPointF &p2)

Returns `true` if p1 is approximately equal to p2; otherwise returns `false`.

This function was introduced in Qt 6.8.

See also qFuzzyIsNull.

### `[constexpr noexcept, since 6.8]` bool qFuzzyIsNull(const QPointF &point)

Returns `true` if point is approximately equal to a point `(0.0, 0.0)`.

This function was introduced in Qt 6.8.

See also qFuzzyCompare.

### `[constexpr noexcept]` bool operator!=(const QPointF &lhs, const QPointF &rhs)

Returns `true` if lhs is sufficiently different from rhs; otherwise returns `false`.

Warning: This function does not check for strict inequality; instead, it uses a fuzzy comparison to compare the points' coordinates.

See also qFuzzyCompare.

### `[constexpr]` QPointF operator*(const QPointF &point, qreal factor)

Returns a copy of the given point, multiplied by the given finite factor.

See also QPointF::operator*=().

### `[constexpr]` QPointF operator*(qreal factor, const QPointF &point)

Returns a copy of the given point, multiplied by the given finite factor.

This is an overloaded function.

### `[constexpr]` QPointF operator+(const QPointF &point)

Returns point unmodified.

### `[constexpr]` QPointF operator+(const QPointF &p1, const QPointF &p2)

Returns a QPointF object that is the sum of the given points, p1 and p2; each component is added separately.

See also QPointF::operator+=().

### `[constexpr]` QPointF operator-(const QPointF &p1, const QPointF &p2)

Returns a QPointF object that is formed by subtracting p2 from p1; each component is subtracted separately.

See also QPointF::operator-=().

### `[constexpr]` QPointF operator-(const QPointF &point)

Returns a QPointF object that is formed by changing the sign of each component of the given point.

Equivalent to `QPointF(0,0) - point`.

This is an overloaded function.

### `[constexpr]` QPointF operator/(const QPointF &point, qreal divisor)

Returns the QPointF object formed by dividing each component of the given point by the given divisor.

The divisor must not be zero or NaN.

See also QPointF::operator/=().

### QDataStream &operator<<(QDataStream &stream, const QPointF &point)

Writes the given point to the given stream and returns a reference to the stream.

See also Serializing Qt Data Types.

### `[constexpr noexcept]` bool operator==(const QPointF &lhs, const QPointF &rhs)

Returns `true` if lhs is approximately equal to rhs; otherwise returns `false`.

Warning: This function does not check for strict equality; instead, it uses a fuzzy comparison to compare the points' coordinates.

See also qFuzzyCompare.

### QDataStream &operator>>(QDataStream &stream, QPointF &point)

Reads a point from the given stream into the given point and returns a reference to the stream.

See also Serializing Qt Data Types.