QPoint 类

QPoint 类使用整数精度在平面上定义一个点。 更多...

头文件 #include <QPoint>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

注意: 此类中所有函数都是 可重入的

公共函数

QPoint()
QPoint(int xpos, int ypos)
boolisNull() const
intmanhattanLength() const
int &rx()
int &ry()
voidsetX(int x)
voidsetY(int y)
CGPointtoCGPoint() const
(since 6.4) QPointFtoPointF() const
QPointtransposed() const
intx() const
inty() const
QPoint &operator*=(float factor)
QPoint &operator*=(double factor)
QPoint &operator*=(int factor)
QPoint &operator+=(const QPoint &point)
QPoint &operator-=(const QPoint &point)
QPoint &operator/=(qreal divisor)

静态公共成员

intdotProduct(const QPoint &p1, const QPoint &p2)
booloperator!=(const QPoint &p1, const QPoint &p2)
QPointoperator*(const QPoint &point, float factor)
QPointoperator*(const QPoint &point, double factor)
QPointoperator*(const QPoint &point, int factor)
QPointoperator*(float factor, const QPoint &point)
QPointoperator*(double factor, const QPoint &point)
QPointoperator*(int factor, const QPoint &point)
QPointoperator+(const QPoint &p1, const QPoint &p2)
QPointoperator+(const QPoint &point)
QPointoperator-(const QPoint &p1, const QPoint &p2)
QPointoperator-(const QPoint &point)
QPointoperator/(const QPoint &point, qreal divisor)
QDataStream &operator<<(QDataStream &stream, const QPoint &point)
booloperator==(const QPoint &p1, const QPoint &p2)
QDataStream &operator>>(QDataStream &stream, QPoint &point)

详细说明

一个点由一个x坐标和一个y坐标指定,可以使用x() 和 y() 函数访问。如果x和y都设置为0,则isNull() 函数返回 true。可以使用setX() 和 setY() 函数(或 alternatively 使用rx() 和 ry() 函数,这些函数返回坐标的引用(允许直接操作))设置(或更改)坐标。

给定一个点 ,以下语句都是等价的

QPoint p;

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

QPoint 对象也可以用作向量:加法和减法被定义为向量(分别对每个分量进行相加)。QPoint 对象也可以被一个 int 或一个 qreal 除以或乘以。

此外,QPoint 类提供了manhattanLength() 函数,它给出将QPoint对象解释为向量时的长度的廉价近似值。最后,QPoint对象可以流化,也可以进行比较。

另请参阅QPointFQPolygon

成员函数文档

[constexpr noexcept] QPoint::QPoint()

构造一个空点,即(0, 0)坐标

另请参阅isNull()。

[constexpr noexcept] QPoint::QPoint(int 横坐标, int 纵坐标)

使用指定的坐标(《横坐标》,《纵坐标》)构造一个点。

另请参阅setX() 和 setY()。

[static constexpr] int QPoint::dotProduct(const QPoint &我1, const QPoint &我2)

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

返回 我1我2 的点积。

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

如果x和y坐标都设置为0则返回 true,否则返回 false

[constexpr] int QPoint::manhattanLength() const

返回 x() 和 y() 的绝对值的和,传统上称为从原点到点的向量的“曼哈顿长度”。例如

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
}

这是一个有效且计算快速的近似值

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

“曼哈顿长度”的传统起源于像曼哈顿街道一样的矩形网格中旅行的旅行者的距离。

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

返回对此点x坐标的引用。

使用引用可以直接操纵x。例如

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

另请参阅 x() 和 setX()。

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

返回此点的y坐标的引用。

使用引用可以使您直接操纵y。例如

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

另请参阅 y() 和 setY()。

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

将此点的x坐标设置为给定的 x 坐标。

另请参阅 x() 和 setY()。

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

将此点的y坐标设置为给定的 y 坐标。

另请参阅 y() 和 setX()。

[noexcept] CGPoint QPoint::toCGPoint() const

从一个QPoint创建一个CGPoint。

另请参阅 QPointF::fromCGPoint()。

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

以浮点精度返回此点。

此函数在Qt 6.4中引入。

另请参阅 QPointF::toPoint()。

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

返回一个x和y坐标交换的点

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

另请参阅 x(),y(),setX() 和 setY()。

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

返回此点的x坐标。

另请参阅 setX() 和 rx()。

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

返回此点的y坐标。

另请参阅 setY() 和 ry()。

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

将此点的坐标乘以给定的 factor,并返回此点的引用。

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 operator/=()。

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

将此点的坐标乘以给定的 factor,并返回此点的引用。例如

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

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 operator/=()。

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

将此点的坐标乘以给定的 factor,并返回此点的引用。

另请参阅 operator/=()。

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

将给定的 point 添加到此点上并返回对此点的引用。例如

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

另请参阅 operator-=

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

从该点减去给定的 point 并返回对此点的引用。例如

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

另请参阅 operator+=

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

这是一个重载函数。

将 x 和 y 均除以给定的 divisor,并返回对此点的引用。例如

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

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 operator*=

相关非成员

[constexpr noexcept] bool operator!=(const QPoint &p1, const QPoint &p2)

如果 p1p2 不相等,则返回 true;否则返回 false

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

返回给定 point 乘以给定 factor 的副本。

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 QPoint::operator*=

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

返回给定 point 乘以给定 factor 的副本。

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 QPoint::operator*=

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

返回给定 point 乘以给定 factor 的副本。

另请参阅 QPoint::operator*=

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

这是一个重载函数。

返回给定 point 乘以给定 factor 的副本。

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 QPoint::operator*=

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

这是一个重载函数。

返回给定 point 乘以给定 factor 的副本。

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 QPoint::operator*=

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

这是一个重载函数。

返回给定 point 乘以给定 factor 的副本。

另请参阅 QPoint::operator*=

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

返回一个 QPoint 对象,它是给定点 p1p2 的总和;每个组件分别相加。

另请参阅 QPoint::operator+=

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

返回未经修改的 point

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

返回一个 QPoint 对象,它是从 p1 中减去 p2 所形成的;每个组件分别相减。

另请参阅 QPoint::operator-=

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

这是一个重载函数。

返回将给定 point 的两个组件的符号改变的 QPoint 对象。

等同于 QPoint(0,0) - point

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

返回将给定 point 的两个组件除以给定 divisor 所形成的 QPoint

注意,由于点是以整数形式存储的,结果会四舍五入到最接近的整数。请使用 QPointF 以获得浮点精度。

另请参阅 QPoint::operator/=

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

将给定的 point 写入给定的 stream 并返回对流的引用。

另请参阅 序列化 Qt 数据类型

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

如果 p1p2 相等,则返回 true;否则返回 false。

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

从指定流中读取一个点到给定的点,并返回流引用。

另请参阅 序列化 Qt 数据类型

© 2024 Qt公司有限公司。本文件中的文档贡献均为各自所有者的版权。本文件提供的文档是根据由自由软件基金会发布的GNU自由文档许可证1.3版本授权的。Qt及其相关标志是芬兰和其他世界各地的Qt公司注册商标。所有其他商标均为其各自所有者的财产。