返回介绍

QPoint类

发布于 2019-10-04 15:02:01 字数 7618 浏览 1038 评论 0 收藏 0

QPoint类定义了平面上的一个点。 详情请见……

#include <qpoint.h>

所有成员函数的列表。

公有成员

  • QPoint ()
  • QPoint ( intxpos, intypos )
  • bool isNull () const
  • int x () const
  • int y () const
  • void setX ( intx )
  • void setY ( inty )
  • int manhattanLength () const
  • QCOORD & rx ()
  • QCOORD & ry ()
  • QPoint & operator+= ( constQPoint&p )
  • QPoint & operator-= ( constQPoint&p )
  • QPoint & operator*= ( intc )
  • QPoint & operator*= ( doublec )
  • QPoint & operator/= ( intc )
  • QPoint & operator/= ( doublec )

相关函数

  • bool operator== ( constQPoint&p1, constQPoint&p2 )
  • bool operator!= ( constQPoint&p1, constQPoint&p2 )
  • const QPoint operator+ ( constQPoint&p1, constQPoint&p2 )
  • const QPoint operator- ( constQPoint&p1, constQPoint&p2 )
  • const QPoint operator* ( constQPoint&p, intc )
  • const QPoint operator* ( intc, constQPoint&p )
  • const QPoint operator* ( constQPoint&p, doublec )
  • const QPoint operator* ( doublec, constQPoint&p )
  • const QPoint operator- ( constQPoint&p )
  • const QPoint operator/ ( constQPoint&p, intc )
  • const QPoint operator/ ( constQPoint&p, doublec )
  • QDataStream & operator<< ( QDataStream&s, constQPoint&p )
  • QDataStream & operator>> ( QDataStream&s, QPoint&p )

详细描述

QPoint类定义了平面上的一个点。

一个点由一个x坐标和一个y坐标确定。

坐标类型是QCOORD(一个32位整数)。QCOORD的最小值是QCOORD_MIN(-2147483648),最大值是QCOORD_MAX(2147483647)。

坐标可以通过函数x()和y()来访问,它们可以由setX()和setY()来设置并且由rx()由ry()来参考。

假设一个点p,下面的语句都是等价的:

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

一个QPoint也可以用作是一个矢量。QPoint的加法和减法也像矢量一样定义了(每个分量分别的被相加或者相减)。你可以把一个QPoint与一个int或者一个double做乘法或者除法。函数manhattanLength()像对矢量那样给出了QPoint一个比较廉价的长度接近值的说明。

Example:

        //QPoint oldPos在其它什么地方定义过了
        MyWidget::mouseMoveEvent( QMouseEvent *e )
        {
            QPoint vector = e->pos() - oldPos;
            if ( vector.manhattanLength() > 3 )
            ... //鼠标从oldPos移动超过3个象素
        }
    

QPoint可以进行比较得出相等或者不等,并且它们可以写到QStream或者从QStream中读出。

也可以参考QPointArray、QSize、QRect、图形类和图像处理类。


成员函数文档

QPoint::QPoint ()

构造一个坐标为(0,0)的点(isNull()返回真)。

QPoint::QPoint ( intxpos, intypos )

构造一个x值为xpos,y值为ypos的点。

bool QPoint::isNull () const

如果x值和y值都是0的话,返回真,否则返回假。

int QPoint::manhattanLength () const

返回x()和y()的绝对值得和,就是传统上的从原点开始的矢量的“曼哈顿长度”。这个传统的出现是因为这样的距离适用于在矩形方格上旅行的履行者们,就像曼哈顿的街道一样。

这个很有用的,并且运算很快,和真实长度sqrt(pow(x(),2)+pow(y(),2))很接近。

QPoint& QPoint::operator*= ( intc )

c与这个点的x和y做乘法,并且返回这个点的引用。

实例:

        QPoint p( -1, 4 );
        p *= 2;            // p变成了(-2,8)
    

QPoint& QPoint::operator*= ( doublec )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

c与这个点的x和y做乘法,并且返回这个点的引用。

实例:

        QPoint p( -1, 4 );
        p *= 2.5;          // p变成了(-3,10)
    

注意这个结果被取整了,因为点是用整数保存的。

QPoint& QPoint::operator+= ( constQPoint&p )

把点p加到这个点上,并且返回这个点的引用。

实例:

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

QPoint& QPoint::operator-= ( constQPoint&p )

从这个点上减去点p,并且返回这个点的引用。

实例:

        QPoint p(  3, 7 );
        QPoint q( -1, 4 );
        p -= q;            // p变成了(4,3)
    

QPoint& QPoint::operator/= ( intc )

x和y都除以c,并且返回这个点的引用。

实例:

        QPoint p( -2, 8 );
        p /= 2;            // p变成了(-1,4)
    

QPoint& QPoint::operator/= ( doublec )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

x和y都除以c,并且返回这个点的引用。

实例:

        QPoint p( -3, 10 );
        p /= 2.5;           // p变成了(-1,4)
    

注意这个结果被取整了,因为点是用整数保存的。

QCOORD & QPoint::rx ()

返回这个点的x坐标的引用。

使用这个引用可以直接操作x。

实例:

        QPoint p( 1, 2 );
        p.rx()--;         // p变成了(0, 2)
    

也可以参考ry()。

QCOORD & QPoint::ry ()

返回这个点的y坐标的引用。

使用这个引用可以直接操作y。

实例:

        QPoint p( 1, 2 );
        p.ry()++;         // p变成了(1, 3)
    

也可以参考rx()。

void QPoint::setX ( intx )

设置这个点的x坐标为x

也可以参考x()和setY()。

实例:t14/cannon.cpp。

void QPoint::setY ( inty )

设置这个点的y坐标为y

也可以参考y()和setX()。

实例:t14/cannon.cpp。

int QPoint::x () const

返回这个点的x坐标。

也可以参考setX()和y()。

实例:canvas/canvas.cpp、chart/canvasview.cpp、dirview/dirview.cpp、fileiconview/qfileiconview.cpp、life/life.cpp、t14/cannon.cpp和themes/wood.cpp。

int QPoint::y () const

返回这个点的y坐标。

也可以参考setY()和x()。

实例:canvas/canvas.cpp、chart/canvasview.cpp、fileiconview/qfileiconview.cpp、life/life.cpp、t14/cannon.cpp和themes/wood.cpp。


相关函数

bool operator!= ( constQPoint&p1, constQPoint&p2 )

如果p1p2相等,返回真,否则返回假。

constQPoint operator* ( constQPoint&p, intc )

返回由p的分量和c相乘构成的QPoint。

constQPoint operator* ( intc, constQPoint&p )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

返回由p的分量和c相乘构成的QPoint。

constQPoint operator* ( constQPoint&p, doublec )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

返回由p的分量和c相乘构成的QPoint。

注意这个结果被取整了,因为点是用整数保存的。

constQPoint operator* ( doublec, constQPoint&p )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

返回由p的分量和c相乘构成的QPoint。

注意这个结果被取整了,因为点是用整数保存的。

constQPoint operator+ ( constQPoint&p1, constQPoint&p2 )

返回p1p2的和,每个分量都分别相加。

constQPoint operator- ( constQPoint&p1, constQPoint&p2 )

返回p1减去p2得到的结果,每个分量都分别相减。

constQPoint operator- ( constQPoint&p )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

返回p每个分量都变号后构成的QPoint,和QPoint(0,0) - p是一样的。

constQPoint operator/ ( constQPoint&p, intc )

返回p每个分量除以c后构成的QPoint。

constQPoint operator/ ( constQPoint&p, doublec )

这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。

返回p每个分量除以c后构成的QPoint。

注意这个结果被取整了,因为点是用整数保存的。

QDataStream& operator<< ( QDataStream&s, constQPoint&p )

把点p写到流s中并且返回流的引用。

也可以参考QDataStream操作符的格式。

bool operator== ( constQPoint&p1, constQPoint&p2 )

如果p1p2相等,返回真,否则返回假。

QDataStream& operator>> ( QDataStream&s, QPoint&p )

从流s中读取一个QPoint到点p并且返回这个流的引用。

也可以参考QDataStream操作符的格式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文