QRect类

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

QRect类参考

QRect类定了平面上的矩形。 详情请见……

#include <qrect.h>

所有成员函数的列表。

公有成员

相关函数

  • bool operator== ( const QRect & r1, const QRect & r2 )
  • bool operator!= ( const QRect & r1, const QRect & r2 )
  • QDataStream & operator<< ( QDataStream & s, const QRect & r )
  • QDataStream & operator>> ( QDataStream & s, QRect & r )

详细描述

QRect类定了平面上的矩形。

一个矩形在内部是由左上角和右下角表示的,但是通常它所表达到是一个左上角和一个大小。

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

注意矩形的大小(宽和高)也许与你通常所用的所有不同。如果左上角和右下角相同,那么这个矩形的宽和高都为1。

通常情况下,width = right - left + 1并且height = bottom - top + 1。我们这样设计是因为这样就可以使矩形空间可以用在绘制函数中,它的宽高就说明了所要绘制的象素。例如,我们画一个宽和高都为1的矩形为一个单一点象素。

默认坐标系统的原点(0,0)在左上角。y轴的正方向向下,并且x轴的正方向从左到右。

一个QRect可以用一组上、左、宽、高四个整数,或者从两个QPoint或者从一个QPoint和一个QSize来构造。创建之后,空间可以被改变,比如使用setLeft()、setRight()、setTop()和setBottom(),或者通过设置,比如setWidth()、setHeight()和setSize()。空间也可以通过移动函数来改变,比如moveBy()、moveCenter()和moveBottomRight()等等。你也可以用addCoords()给矩形加上坐标。

你也可以通过contains()测试来看一个QRect是否包含一个特定点。你也可以通过intersects()测试来看两个QRect是否相交(也可以参考intersect())。可以使用unite()来获得两个QRect的边界长方形。

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


成员函数文档

QRect::QRect ()

构造一个无效的矩形。

QRect::QRect ( const QPoint & topLeft, const QPoint & bottomRight )

构造一个左上角为topLeft,右下角为bottomRight的矩形。

QRect::QRect ( const QPoint & topLeft, const QSize & size )

构造一个左上角为topLeft并且矩形大小为size的矩形。

QRect::QRect ( int left, int top, int width, int height )

构造一个上、左、宽、高分别为topleftwidthheight的矩形。

实例(创建三个同样的矩形):

        QRect r1( QPoint(100,200), QPoint(110,215) );
        QRect r2( QPoint(100,200), QSize(11,16) );
        QRect r3( 100, 200, 11, 16 );
    

void QRect::addCoords ( int xp1, int yp1, int xp2, int yp2 )

分别给矩形已经存在的坐标加上xp1yp1xp2yp2

int QRect::bottom () const

返回矩形的下坐标。

也可以参考top()、setBottom()、bottomLeft()和bottomRight()。

实例:desktop/desktop.cpphelpviewer/helpwindow.cppqfd/fontdisplayer.cppscribble/scribble.cppthemes/wood.cpp

QPoint QRect::bottomLeft () const

返回矩形的左下位置。

也可以参考moveBottomLeft()、bottomRight()、topLeft()、topRight()、bottom()和left()。

实例:tictac/tictac.cpp

QPoint QRect::bottomRight () const

返回矩形的右下位置。

也可以参考moveBottomRight()、bottomLeft()、topLeft()、topRight()、bottom()和right()。

实例:tictac/tictac.cpp

QPoint QRect::center () const

返回矩形中心点。

也可以参考moveCenter()、topLeft()、topRight()、bottomLeft()和bottomRight()。

实例:tooltip/tooltip.cpp

bool QRect::contains ( const QPoint & p, bool proper = FALSE ) const

如果点p在矩形内或者在矩形边缘上,返回真,否则返回假。

如果proper为真,这个函数只有在p在矩形里面时(不在边界上)的情况下,返回真。

实例:t14/cannon.cpp

bool QRect::contains ( int x, int y, bool proper = FALSE ) const

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

如果点xy在矩形内,返回真,否则返回假。

如果proper为真,这个函数只有在p在矩形里面时(不在边界上)的情况下,返回真。

bool QRect::contains ( const QRect & r, bool proper = FALSE ) const

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

如果矩形r在这个矩形里面,返回真,否则返回假。

如果proper为真,这个函数只有在p在矩形里面时(不在边界上)的情况下,返回真。

也可以参考unite()、intersect()和intersects()。

void QRect::coords ( int * xp1, int * yp1, int * xp2, int * yp2 ) const

提取矩形的参数作为左上点*xp1*yp1和右下点*xp2*yp2

也可以参考setCoords()和rect()。

实例:themes/metal.cppthemes/wood.cpp

int QRect::height () const

返回矩形的高。这个高包括左和下边界,比如height = bottom - top + 1。

也可以参考width()、size()和setHeight()。

实例:aclock/aclock.cppdesktop/desktop.cppmovies/main.cppscribble/scribble.cppthemes/metal.cppthemes/wood.cppxform/xform.cpp

QRect QRect::intersect ( const QRect & r ) const

返回这个矩形和矩形r交集。r.intersect(s)r&s是相同的。

bool QRect::intersects ( const QRect & r ) const

如果这个矩形和矩形r相交(至少两个矩形有一个相同象素),返回真,否则返回假。

也可以参考intersect()和contains()。

实例:t11/cannon.cppt12/cannon.cppt13/cannon.cppt14/cannon.cpp

bool QRect::isEmpty () const

如果这个矩形是空的,返回真,否则返回假。

一个空的矩形的left()>right()或者top()>bottom()。

一个空矩形是无效的。isEmpty()==!isValid()

也可以参考isNull()和isValid()。

bool QRect::isNull () const

如果一个矩形是零矩形,返回真,否则返回假。

一个零矩形的宽和高都设置为0,并且right()==left()-1并且bottom()==top()-1。

注意如果right()==left()并且bottom()==top(),那么这个矩形的宽和高都为1。

一个零矩形也是空的。

一个零矩形是无效的。

也可以参考isEmpty()和isValid()。

bool QRect::isValid () const

Returns TRUE if the rectangle is valid or FALSE if it is invalid (empty)。 如果一个矩形是有效的,反会诊,否则如果它是无效的(空的)就返回假。

一个有效的矩形中,left()<=right()和top()<=bottom()。

isValid()==!isEmpty()

也可以参考isNull()、isEmpty()和normalize()。

实例:themes/metal.cpptooltip/tooltip.cpp

int QRect::left () const

返回矩形的左坐标.与x()相同.

也可以参考x()、top()、right()、setLeft()、topLeft()和bottomLeft()。

实例:aclock/aclock.cppdesktop/desktop.cppqfd/fontdisplayer.cppscribble/scribble.cpptictac/tictac.cppxform/xform.cpp

void QRect::moveBottomLeft ( const QPoint & p )

设置矩形的左下坐标为p,而大小不被改变。

也可以参考bottomLeft()、moveBottomRight()、moveTopLeft()、moveTopRight()、setBottom()和setLeft()。

实例:t10/cannon.cpp

void QRect::moveBottomRight ( const QPoint & p )

设置矩形的右下坐标为p,而大小不被改变。

也可以参考bottomRight()、moveBottomLeft()、moveTopLeft()、moveTopRight()、setBottom()和setRight()。

void QRect::moveBy ( int dx, int dy )

矩形相对于当前位置在x轴上移动dx,在y轴上移动dy。(正值时,向右和/或下移动矩形。)

实例:helpviewer/helpwindow.cppthemes/wood.cppxform/xform.cpp

void QRect::moveCenter ( const QPoint & p )

设置矩形的中点为p,而大小不被改变。

也可以参考center()、moveTopLeft()、moveTopRight()、moveBottomLeft()和moveBottomRight()。

实例:t11/cannon.cppt12/cannon.cpp

void QRect::moveTopLeft ( const QPoint & p )

设置矩形的左上坐标为p,而大小不被改变。

也可以参考topLeft()、moveTopRight()、moveBottomLeft()、moveBottomRight()、setTop()和setLeft()。

实例:xform/xform.cpp

void QRect::moveTopRight ( const QPoint & p )

设置矩形的右上坐标为p,而大小不被改变。

也可以参考topRight()、moveTopLeft()、moveBottomLeft()、moveBottomRight()、setTop()和setRight()。

QRect QRect::normalize () const

返回一个标准化的矩形,比如,一个宽高都为非负的矩形。

如果left()>right(),交换左右,并且如果top()>bottom(),交换上下。

也可以参考isValid()。

实例:scribble/scribble.cpp

QRect QRect::operator& ( const QRect & r ) const

返回这个矩形和矩形r的交集。

如果没有交集,返回一个空矩形。

也可以参考operator&=()、operator|()、isEmpty()、intersects()和contains()。

QRect & QRect::operator&= ( const QRect & r )

这个矩形和矩形r的交集。

QRect QRect::operator| ( const QRect & r ) const

返回这个矩形和矩形r的边界矩形。

一个非空矩形和一个空矩形或者一个无效矩形的边界矩形定义为一个非空矩形。

也可以参考operator|=()、operator&()、intersects()和contains()。

QRect & QRect::operator|= ( const QRect & r )

这个矩形和矩形r的并集。

QCOORD & QRect::rBottom ()

返回矩形的下坐标引用。

也可以参考rLeft()、rTop()和rRight()。

QCOORD & QRect::rLeft ()

返回矩形的左坐标引用。

也可以参考rTop()、rRight()和rBottom()。

QCOORD & QRect::rRight ()

返回矩形的右坐标引用。

也可以参考rLeft()、rTop()和rBottom()。

QCOORD & QRect::rTop ()

返回矩形的上坐标引用。

也可以参考rLeft()、rRight()和rBottom()。

void QRect::rect ( int * x, int * y, int * w, int * h ) const

提取矩形参数为位置*x*y和宽*w和高*h

也可以参考setRect()和coords()。

实例:themes/metal.cppthemes/wood.cpp

int QRect::right () const

返回矩形的右坐标。

也可以参考left()、setRight()、topRight()和bottomRight()。

实例:customlayout/flow.cppdesktop/desktop.cpphelpviewer/helpwindow.cppqfd/fontdisplayer.cppscribble/scribble.cppt11/cannon.cppthemes/wood.cpp

void QRect::setBottom ( int pos )

设置矩形的下边缘为pos。也许改变高度,但决不会改变矩形的上边缘。

也可以参考bottom()、setTop()和setHeight()。

实例:scribble/scribble.cpp

void QRect::setCoords ( int xp1, int yp1, int xp2, int yp2 )

设置矩形的左上角的坐标为(xp1,yp1),并且它的右下角坐标为(xp2,yp2)

也可以参考coords()和setRect()。

void QRect::setHeight ( int h )

设置矩形的高为h。上边缘没有被移动,但是下边缘也许被移动。

也可以参考height()、setTop()、setBottom()和setSize()。

实例:desktop/desktop.cpp

void QRect::setLeft ( int pos )

设置矩形的左边缘为pos。也许改变宽度,但决不会改变矩形的右边缘。

setX()一样。

也可以参考left()、setTop()和setWidth()。

实例:scribble/scribble.cpp

void QRect::setRect ( int x, int y, int w, int h )

设置矩形左上角坐标为(x,y),并且它的大小为(w,h)

也可以参考rect()和setCoords()。

实例:themes/wood.cpp

void QRect::setRight ( int pos )

设置矩形的右边缘为pos。也许改变宽度,但决不会改变矩形的左边缘。

也可以参考right()、setLeft()和setWidth()。

实例:scribble/scribble.cpp

void QRect::setSize ( const QSize & s )

设置矩形的大小为s。左上角不被移动。

也可以参考size()、setWidth()和setHeight()。

实例:xform/xform.cpp

void QRect::setTop ( int pos )

设置矩形的上边缘为pos。也许改变高度,但决不会改变矩形的下边缘。

setY()一样。

也可以参考top()、setBottom()和setHeight()。

实例:scribble/scribble.cpp

void QRect::setWidth ( int w )

Sets the width of the rectangle to w。 The right edge is changed, but not the left edge. 设置矩形的宽为w。右边缘被改变,但是左边缘不会被改变。

也可以参考width()、setLeft()、setRight()和setSize()。

实例:desktop/desktop.cpp

void QRect::setX ( int x )

设置矩形的x位置(它的左边)为x。也许会改变宽度,但是不会改变矩形的右边界。

setLeft()一样。

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

void QRect::setY ( int y )

设置矩形的y位置(它的上边)为y。也许会改变高度,但是不会改变矩形的下边界。

setTop()一样。

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

QSize QRect::size () const

返回矩形的大小。

也可以参考width()和height()。

实例:desktop/desktop.cppmovies/main.cppt10/cannon.cpp

int QRect::top () const

返回矩形的上坐标。与y()一样。

也可以参考y()、left()、bottom()、setTop()、topLeft()和topRight()。

实例:aclock/aclock.cppdesktop/desktop.cpphelpviewer/helpwindow.cppscribble/scribble.cppthemes/wood.cpptictac/tictac.cppxform/xform.cpp

QPoint QRect::topLeft () const

返回矩形的左上角位置。

也可以参考moveTopLeft()、topRight()、bottomLeft()、bottomRight()、left()和top()。

实例:t10/cannon.cpptictac/tictac.cpp

QPoint QRect::topRight () const

返回矩形的右上角位置。

也可以参考moveTopRight()、topLeft()、bottomLeft()、bottomRight()、top()和right()。

实例:tictac/tictac.cpp

QRect QRect::unite ( const QRect & r ) const

返回这个矩形和矩形r的边界矩形。r.unite(s)r|s相同。

实例:t11/cannon.cppt12/cannon.cppxform/xform.cpp

int QRect::width () const

返回矩形的宽度。宽度包括左和右边界,比如width = right - left + 1。

也可以参考height()、size()和setHeight()。

实例:aclock/aclock.cppcustomlayout/border.cppdesktop/desktop.cppmovies/main.cppthemes/metal.cppthemes/wood.cppxform/xform.cpp

int QRect::x () const

返回矩形的左坐标。与left()一样。

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

实例:customlayout/border.cppdesktop/desktop.cppmovies/main.cppscribble/scribble.cppt12/cannon.cppthemes/metal.cppthemes/wood.cpp

int QRect::y () const

返回矩形的上坐标。与top()一样。

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

实例:desktop/desktop.cppmovies/main.cppscribble/scribble.cppt12/cannon.cppt14/cannon.cppthemes/metal.cppthemes/wood.cpp


相关函数

bool operator!= ( const QRect & r1, const QRect & r2 )

如果r1r2不同,返回真,否则返回假。

QDataStream & operator<< ( QDataStream & s, const QRect & r )

写这个QRectr到流s中,并且返回这个流的引用。

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

bool operator== ( const QRect & r1, const QRect & r2 )

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

QDataStream & operator>> ( QDataStream & s, QRect & r )

从流s读一个QRect到r中,并且返回这个流的引用。

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


这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版