主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QRect类参考
QRect类定了平面上的矩形。 详情请见……
#include <qrect.h>
公有成员
- QRect ()
- QRect ( const QPoint & topLeft, const QPoint & bottomRight )
- QRect ( const QPoint & topLeft, const QSize & size )
- QRect ( int left, int top, int width, int height )
- bool isNull () const
- bool isEmpty () const
- bool isValid () const
- QRect normalize () const
- int left () const
- int top () const
- int right () const
- int bottom () const
- QCOORD & rLeft ()
- QCOORD & rTop ()
- QCOORD & rRight ()
- QCOORD & rBottom ()
- int x () const
- int y () const
- void setLeft ( int pos )
- void setTop ( int pos )
- void setRight ( int pos )
- void setBottom ( int pos )
- void setX ( int x )
- void setY ( int y )
- QPoint topLeft () const
- QPoint bottomRight () const
- QPoint topRight () const
- QPoint bottomLeft () const
- QPoint center () const
- void rect ( int * x, int * y, int * w, int * h ) const
- void coords ( int * xp1, int * yp1, int * xp2, int * yp2 ) const
- void moveTopLeft ( const QPoint & p )
- void moveBottomRight ( const QPoint & p )
- void moveTopRight ( const QPoint & p )
- void moveBottomLeft ( const QPoint & p )
- void moveCenter ( const QPoint & p )
- void moveBy ( int dx, int dy )
- void setRect ( int x, int y, int w, int h )
- void setCoords ( int xp1, int yp1, int xp2, int yp2 )
- void addCoords ( int xp1, int yp1, int xp2, int yp2 )
- QSize size () const
- int width () const
- int height () const
- void setWidth ( int w )
- void setHeight ( int h )
- void setSize ( const QSize & s )
- QRect operator| ( const QRect & r ) const
- QRect operator& ( const QRect & r ) const
- QRect & operator|= ( const QRect & r )
- QRect & operator&= ( const QRect & r )
- bool contains ( const QPoint & p, bool proper = FALSE ) const
- bool contains ( int x, int y, bool proper = FALSE ) const
- bool contains ( const QRect & r, bool proper = FALSE ) const
- QRect unite ( const QRect & r ) const
- QRect intersect ( const QRect & r ) const
- bool intersects ( const QRect & r ) const
相关函数
- 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的边界长方形。
成员函数文档
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 )
构造一个上、左、宽、高分别为top、left、width和height的矩形。
实例(创建三个同样的矩形):
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 )
分别给矩形已经存在的坐标加上xp1、yp1、xp2和yp2。int QRect::bottom () const
返回矩形的下坐标。
也可以参考top()、setBottom()、bottomLeft()和bottomRight()。
实例:desktop/desktop.cpp、helpviewer/helpwindow.cpp、qfd/fontdisplayer.cpp、scribble/scribble.cpp和themes/wood.cpp。
QPoint QRect::bottomLeft () const
返回矩形的左下位置。
也可以参考moveBottomLeft()、bottomRight()、topLeft()、topRight()、bottom()和left()。
QPoint QRect::bottomRight () const
返回矩形的右下位置。
也可以参考moveBottomRight()、bottomLeft()、topLeft()、topRight()、bottom()和right()。
QPoint QRect::center () const
返回矩形中心点。
也可以参考moveCenter()、topLeft()、topRight()、bottomLeft()和bottomRight()。
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
这是一个重载成员函数,提供了方便。它的行为和上面的函数基本一致。如果点x、y在矩形内,返回真,否则返回假。
如果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。
实例:themes/metal.cpp和themes/wood.cpp。
int QRect::height () const
返回矩形的高。这个高包括左和下边界,比如height = bottom - top + 1。
也可以参考width()、size()和setHeight()。
实例:aclock/aclock.cpp、desktop/desktop.cpp、movies/main.cpp、scribble/scribble.cpp、themes/metal.cpp、themes/wood.cpp和xform/xform.cpp。
QRect QRect::intersect ( const QRect & r ) const
返回这个矩形和矩形r交集。r.intersect(s)与r&s是相同的。bool QRect::intersects ( const QRect & r ) const
如果这个矩形和矩形r相交(至少两个矩形有一个相同象素),返回真,否则返回假。
实例:t11/cannon.cpp、t12/cannon.cpp、t13/cannon.cpp和t14/cannon.cpp。
bool QRect::isEmpty () const
如果这个矩形是空的,返回真,否则返回假。
一个空的矩形的left()>right()或者top()>bottom()。
一个空矩形是无效的。isEmpty()==!isValid()
bool QRect::isNull () const
如果一个矩形是零矩形,返回真,否则返回假。
一个零矩形的宽和高都设置为0,并且right()==left()-1并且bottom()==top()-1。
注意如果right()==left()并且bottom()==top(),那么这个矩形的宽和高都为1。
一个零矩形也是空的。
一个零矩形是无效的。
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.cpp和tooltip/tooltip.cpp。
int QRect::left () const
返回矩形的左坐标.与x()相同.
也可以参考x()、top()、right()、setLeft()、topLeft()和bottomLeft()。
实例:aclock/aclock.cpp、desktop/desktop.cpp、qfd/fontdisplayer.cpp、scribble/scribble.cpp、tictac/tictac.cpp和xform/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.cpp、themes/wood.cpp和xform/xform.cpp。
void QRect::moveCenter ( const QPoint & p )
设置矩形的中点为p,而大小不被改变。
也可以参考center()、moveTopLeft()、moveTopRight()、moveBottomLeft()和moveBottomRight()。
实例:t11/cannon.cpp和t12/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()。
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 ()
返回矩形的下坐标引用。
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。
实例:themes/metal.cpp和themes/wood.cpp。
int QRect::right () const
返回矩形的右坐标。
也可以参考left()、setRight()、topRight()和bottomRight()。
实例:customlayout/flow.cpp、desktop/desktop.cpp、helpviewer/helpwindow.cpp、qfd/fontdisplayer.cpp、scribble/scribble.cpp、t11/cannon.cpp和themes/wood.cpp。
void QRect::setBottom ( int pos )
设置矩形的下边缘为pos。也许改变高度,但决不会改变矩形的上边缘。
也可以参考bottom()、setTop()和setHeight()。
void QRect::setCoords ( int xp1, int yp1, int xp2, int yp2 )
设置矩形的左上角的坐标为(xp1,yp1),并且它的右下角坐标为(xp2,yp2)。
void QRect::setHeight ( int h )
设置矩形的高为h。上边缘没有被移动,但是下边缘也许被移动。
也可以参考height()、setTop()、setBottom()和setSize()。
void QRect::setLeft ( int pos )
设置矩形的左边缘为pos。也许改变宽度,但决不会改变矩形的右边缘。
与setX()一样。
也可以参考left()、setTop()和setWidth()。
void QRect::setRect ( int x, int y, int w, int h )
设置矩形左上角坐标为(x,y),并且它的大小为(w,h)。
实例:themes/wood.cpp。
void QRect::setRight ( int pos )
设置矩形的右边缘为pos。也许改变宽度,但决不会改变矩形的左边缘。
也可以参考right()、setLeft()和setWidth()。
void QRect::setSize ( const QSize & s )
设置矩形的大小为s。左上角不被移动。
也可以参考size()、setWidth()和setHeight()。
实例:xform/xform.cpp。
void QRect::setTop ( int pos )
设置矩形的上边缘为pos。也许改变高度,但决不会改变矩形的下边缘。
与setY()一样。
也可以参考top()、setBottom()和setHeight()。
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()。
void QRect::setX ( int x )
设置矩形的x位置(它的左边)为x。也许会改变宽度,但是不会改变矩形的右边界。
与setLeft()一样。
void QRect::setY ( int y )
设置矩形的y位置(它的上边)为y。也许会改变高度,但是不会改变矩形的下边界。
与setTop()一样。
QSize QRect::size () const
返回矩形的大小。
实例:desktop/desktop.cpp、movies/main.cpp和t10/cannon.cpp。
int QRect::top () const
返回矩形的上坐标。与y()一样。
也可以参考y()、left()、bottom()、setTop()、topLeft()和topRight()。
实例:aclock/aclock.cpp、desktop/desktop.cpp、helpviewer/helpwindow.cpp、scribble/scribble.cpp、themes/wood.cpp、tictac/tictac.cpp和xform/xform.cpp。
QPoint QRect::topLeft () const
返回矩形的左上角位置。
也可以参考moveTopLeft()、topRight()、bottomLeft()、bottomRight()、left()和top()。
实例:t10/cannon.cpp和tictac/tictac.cpp。
QPoint QRect::topRight () const
返回矩形的右上角位置。
也可以参考moveTopRight()、topLeft()、bottomLeft()、bottomRight()、top()和right()。
QRect QRect::unite ( const QRect & r ) const
返回这个矩形和矩形r的边界矩形。r.unite(s)与r|s相同。实例:t11/cannon.cpp、t12/cannon.cpp和xform/xform.cpp。
int QRect::width () const
返回矩形的宽度。宽度包括左和右边界,比如width = right - left + 1。
也可以参考height()、size()和setHeight()。
实例:aclock/aclock.cpp、customlayout/border.cpp、desktop/desktop.cpp、movies/main.cpp、themes/metal.cpp、themes/wood.cpp和xform/xform.cpp。
int QRect::x () const
返回矩形的左坐标。与left()一样。
实例:customlayout/border.cpp、desktop/desktop.cpp、movies/main.cpp、scribble/scribble.cpp、t12/cannon.cpp、themes/metal.cpp和themes/wood.cpp。
int QRect::y () const
返回矩形的上坐标。与top()一样。
实例:desktop/desktop.cpp、movies/main.cpp、scribble/scribble.cpp、t12/cannon.cpp、t14/cannon.cpp、themes/metal.cpp和themes/wood.cpp。
相关函数
bool operator!= ( const QRect & r1, const QRect & r2 )
如果r1和r2不同,返回真,否则返回假。
QDataStream & operator<< ( QDataStream & s, const QRect & r )
写这个QRectr到流s中,并且返回这个流的引用。
也可以参考QDataStream操作符的格式。
bool operator== ( const QRect & r1, const QRect & r2 )
如果r1和r2相等,返回真,否则返回假。
QDataStream & operator>> ( QDataStream & s, QRect & r )
从流s读一个QRect到r中,并且返回这个流的引用。
也可以参考QDataStream操作符的格式。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|