QPoint和QSize

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中读出。

 

也可以参考QPointArrayQSizeQRect图形类图像处理类

 

    QSize定义了一个二维对象的大小。

 

一个大小由一个宽和一个高确定。

坐标类型是QCOORD(和int一样在qwindowdefs.h中定义的)。QCOORD的最小值是QCOORD_MIN(-2147483648),最大值是QCOORD_MAX(2147483647)。

大小可以在构造函数中设置并且可以用setWidth()和setHeight()来修改,或者使用operator+=()、operator-=()、operator*=()和operator/=()等等。你可以使用transpose()来交换宽和高。你可以使用expandedTo()来得到宽和高为两个大小的宽和高的最大值的大小,并且可以使用boundedTo()来得到宽和高为两个大小的宽和高的最小值的大小。

 

也可以参考QPointQRect图形类图像处理类

你可能感兴趣的:(Qt4)