返回介绍

QRect类

发布于 2019-10-04 15:02:09 字数 15402 浏览 1180 评论 0 收藏 0

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

#include <qrect.h>

所有成员函数的列表。

公有成员

  • QRect ()
  • QRect ( constQPoint&topLeft, constQPoint&bottomRight )
  • QRect ( constQPoint&topLeft, constQSize&size )
  • QRect ( intleft, inttop, intwidth, intheight )
  • 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 ( intpos )
  • void setTop ( intpos )
  • void setRight ( intpos )
  • void setBottom ( intpos )
  • void setX ( intx )
  • void setY ( inty )
  • 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 ( constQPoint&p )
  • void moveBottomRight ( constQPoint&p )
  • void moveTopRight ( constQPoint&p )
  • void moveBottomLeft ( constQPoint&p )
  • void moveCenter ( constQPoint&p )
  • void moveBy ( intdx, intdy )
  • void setRect ( intx, inty, intw, inth )
  • void setCoords ( intxp1, intyp1, intxp2, intyp2 )
  • void addCoords ( intxp1, intyp1, intxp2, intyp2 )
  • QSize size () const
  • int width () const
  • int height () const
  • void setWidth ( intw )
  • void setHeight ( inth )
  • void setSize ( constQSize&s )
  • QRect operator| ( constQRect&r ) const
  • QRect operator& ( constQRect&r ) const
  • QRect & operator|= ( constQRect&r )
  • QRect & operator&= ( constQRect&r )
  • bool contains ( constQPoint&p, boolproper = FALSE ) const
  • bool contains ( intx, inty, boolproper = FALSE ) const
  • bool contains ( constQRect&r, boolproper = FALSE ) const
  • QRect unite ( constQRect&r ) const
  • QRect intersect ( constQRect&r ) const
  • bool intersects ( constQRect&r ) const

相关函数

  • bool operator== ( constQRect&r1, constQRect&r2 )
  • bool operator!= ( constQRect&r1, constQRect&r2 )
  • QDataStream & operator<< ( QDataStream&s, constQRect&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的边界长方形。

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


成员函数文档

QRect::QRect ()

构造一个无效的矩形。

QRect::QRect ( constQPoint&topLeft, constQPoint&bottomRight )

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

QRect::QRect ( constQPoint&topLeft, constQSize&size )

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

QRect::QRect ( intleft, inttop, intwidth, intheight )

构造一个上、左、宽、高分别为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 ( intxp1, intyp1, intxp2, intyp2 )

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

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()。

实例: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 ( constQPoint&p, boolproper = FALSE ) const

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

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

实例:t14/cannon.cpp。

bool QRect::contains ( intx, inty, boolproper = FALSE ) const

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

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

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

bool QRect::contains ( constQRect&r, boolproper = 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.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 ( constQRect&r ) const

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

bool QRect::intersects ( constQRect&r ) const

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

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

实例:t11/cannon.cpp、t12/cannon.cpp、t13/cannon.cpp和t14/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.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 ( constQPoint&p )

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

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

实例:t10/cannon.cpp。

void QRect::moveBottomRight ( constQPoint&p )

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

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

void QRect::moveBy ( intdx, intdy )

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

实例:helpviewer/helpwindow.cpp、themes/wood.cpp和xform/xform.cpp。

void QRect::moveCenter ( constQPoint&p )

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

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

实例:t11/cannon.cpp和t12/cannon.cpp。

void QRect::moveTopLeft ( constQPoint&p )

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

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

实例:xform/xform.cpp。

void QRect::moveTopRight ( constQPoint&p )

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

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

QRect QRect::normalize () const

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

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

也可以参考isValid()。

实例:scribble/scribble.cpp。

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

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

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

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

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

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

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

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

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

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

QRect& QRect::operator|= ( constQRect&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.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 ( intpos )

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

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

实例:scribble/scribble.cpp。

void QRect::setCoords ( intxp1, intyp1, intxp2, intyp2 )

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

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

void QRect::setHeight ( inth )

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

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

实例:desktop/desktop.cpp。

void QRect::setLeft ( intpos )

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

与setX()一样。

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

实例:scribble/scribble.cpp。

void QRect::setRect ( intx, inty, intw, inth )

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

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

实例:themes/wood.cpp。

void QRect::setRight ( intpos )

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

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

实例:scribble/scribble.cpp。

void QRect::setSize ( constQSize&s )

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

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

实例:xform/xform.cpp。

void QRect::setTop ( intpos )

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

与setY()一样。

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

实例:scribble/scribble.cpp。

void QRect::setWidth ( intw )

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 ( intx )

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

与setLeft()一样。

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

void QRect::setY ( inty )

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

与setTop()一样。

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

QSize QRect::size () const

返回矩形的大小。

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

实例: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()。

实例:tictac/tictac.cpp。

QRect QRect::unite ( constQRect&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()一样。

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

实例: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()一样。

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

实例:desktop/desktop.cpp、movies/main.cpp、scribble/scribble.cpp、t12/cannon.cpp、t14/cannon.cpp、themes/metal.cpp和themes/wood.cpp。


相关函数

bool operator!= ( constQRect&r1, constQRect&r2 )

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

QDataStream& operator<< ( QDataStream&s, constQRect&r )

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

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

bool operator== ( constQRect&r1, constQRect&r2 )

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

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

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

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

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

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

发布评论

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