class QRectF#

QRectF类定义了一个浮点数精度的平面上的有限矩形。更多

概述#

方法#

注意

此文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您看到翻译中存在问题,也可以通过创建 https:/bugreports.qt.io/projects/PYSIDE 上的工单来通知我们。

详细说明#

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能出现错误。

矩形通常以左上角和大小来表示。《QRectF》的大小(宽度和高度)始终等于其渲染的基础数学矩形。

《QRectF》可以用一组左、上、宽和高坐标来构造,或从《QPointF》和《QSizeF》构造。以下代码创建了两个相同的矩形。

r1 = QRectF(100.0, 200.1, 11.2, 16.3)
r2 = QRectF(QPointF(100.0, 200.1), QSizeF(11.2, 16.3))

还有一个第三个构造函数可以从《QRect》创建一个《QRectF》,以及相应的《toRect()`》函数,该函数根据此矩形(请注意,返回矩形的坐标四舍五入到最接近的整数)的值返回一个《QRect》对象。

QRectF 类提供了一组函数,用于返回各种矩形坐标,并能够对这些坐标进行操作。 QRectF 还提供了一组函数,用于根据不同坐标移动矩形。此外,还有一个 moveTo() 函数,用于移动矩形,使其左上角位于指定的坐标上。或者,translate() 函数将矩形移动到当前位置偏移量的位置,而 translated() 函数则返回一个移动过的矩形副本。

size() 函数返回矩形的维度的 QSizeF 对象。这些维度也可以通过 width()height() 函数单独获取。要操作这些维度,可以使用 setSize() , setWidth()setHeight() 函数。或者,也可以通过应用设置矩形坐标的函数来改变大小,例如,使用 setBottom()setRight() 函数。

contains() 函数用于判断给定点是否在矩形内部,而 intersects() 函数如果此矩形与给定矩形相交则返回 true(否则返回 false)。QRectF 类还提供了一个 intersected() 函数,用于返回交集矩形,以及一个 united() 函数,用于返回包含给定矩形和该相交矩形的矩形。

isEmpty()函数返回true,如果矩形的宽度或高度小于或等于0。注意,空矩形不是有效的:如果宽度和高度都大于0,则isValid()函数返回true。另一方面,如果宽度等于高度都设置为0,则表示空矩形。

由于QRectQRectF的定义方式相同,空QRectF在本质上与QRect相同。

QRectF对象可以进行流操作,也可以进行比较。

渲染

使用抗锯齿绘图笔时,QRectF的边界将在数学矩形边界线的两侧对称地渲染。但使用带有锯齿的绘图笔(默认)时,将应用其他规则。

然后,当使用1像素宽的笔进行渲染时,QRectF的边界线将渲染在数学矩形边界线的右侧和下方。

当使用2像素宽的笔进行渲染时,边界线会在数学矩形中间分开。当笔的宽度设置为偶数像素时,就会发生这种情况,而当使用奇数像素宽的笔时,空余的像素将像1像素宽的笔一样渲染在数学矩形的右侧和下方。

qrect-diagram-zero3

qrectf-diagram-one4

逻辑表示

1像素宽的笔

qrectf-diagram-two5

qrectf-diagram-three6

2像素宽的笔

3像素宽的笔

坐标

QRectF类提供了一系列返回各种矩形坐标的函数,并允许对这些坐标进行操作。QRectF还提供了移动矩形相对于各种坐标的函数。

例如:bottom()setBottom()moveBottom() 函数:bottom() 返回矩形底边的 y 坐标,setBottom() 将矩形的底边设置为指定的 y 坐标(它可能会改变高度,但不会改变矩形的顶边),moveBottom() 将整个矩形垂直移动,使得矩形的底边位于指定的 y 坐标,且大小保持不变。

../../_images/qrectf-coordinates.png

还可以使用 adjust() 函数为此矩形的坐标添加偏移量,以及使用 adjusted() 函数基于原始矩形的调整获取新的矩形。如果宽度和高度中任意一个为负数,请使用 normalized() 函数来获取一个角落已交换的矩形。

此外,QRectF 提供了 getCoords() 函数,该函数提取矩形的右上角和左下角的坐标,以及 getRect() 函数,该函数提取矩形的左上角、宽度和高度。使用 setCoords()setRect() 函数一次性操作矩形的坐标和尺寸。

另请参阅

QRect QRegion

__init__(topleft, bottomRight)#
参数:

使用给定的 topLeftbottomRight 角构造矩形。

__init__()

构造一个空矩形。

另请参阅

isNull()

__init__(left, top, width, height)
参数:
  • left – float

  • top – float

  • width – float

  • height – float

使用(xy)作为其左上角以及给定的 widthheight 构造矩形。所有参数都必须是有限数。

另请参阅

setRect()

__init__(topleft, size)
参数:

使用给定的 topLeft 角和给定的 size 构造矩形。

另请参阅

setTopLeft() setSize()

__init__(rect)
参数:

rectQRect

从给定的 QRect 矩形中构造一个 QRectF 矩形。

注意

此函数与 toRectF() 类似,它保留矩形的 size() 而不是其 bottomRight() 角。

另请参阅

toRect() toRectF()

__reduce__()#
返回类型:

object

__repr__()#
返回类型:

object

adjust(x1, y1, x2, y2)#
参数:
  • x1 – 浮点数

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

dx1dy1dx2dy2 分别加到矩形的现有坐标上。所有参数必须是有限的。

另请参阅

adjusted() setRect()

adjusted(x1, y1, x2, y2)#
参数:
  • x1 – 浮点数

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

返回类型:

矩形浮点数

返回一个新的矩形,其 dx1dy1dx2dy2 分别添加到现有坐标上。所有参数必须是有限的。

另请参阅

adjust()

bottom()#
返回类型:

float

返回矩形底边的 y 坐标。

bottomLeft()#
返回类型:

点浮点数

返回矩形左下角的位置。

bottomRight()#
返回类型:

点浮点数

返回矩形右下角的位置。

center()#
返回类型:

点浮点数

返回矩形的中心点。

另请参阅

moveCenter()

contains(r)#
参数:

rQRectF

返回类型:

bool

这是一个重载函数。

如果给定的矩形在此矩形内部,则返回 true;否则返回 false

contains(x, y)
参数:
  • x – float

  • y – float

返回类型:

bool

这是一个重载函数。

如果点 (<x>, <y>) 在矩形内部或在边缘上,则返回 true;否则返回 false

contains(p)
参数:

pQPointF

返回类型:

bool

如果给定的点在此矩形内部或在边缘上,则返回 true;否则返回 false

另请参阅

intersects()

getCoords()#
返回类型:

PyObject

提取矩形左上角的位置到 *`x1` 和 *`y1`,以及右下角的位置到 *`x2` 和 *`y2`。

另请参阅

setCoords() getRect()

getRect()#
返回类型:

PyObject

提取矩形左上角的位置到 *`x` 和 *`y`,以及其尺寸到 *`width` 和 *`height`。

另请参阅

setRect() getCoords()

height()#
返回类型:

float

返回矩形的宽度。

另请参阅

setHeight() width() size()

intersected(other)#
参数:

otherQRectF

返回类型:

矩形浮点数

返回此矩形与给定 rectangle 的交集。请注意,r.intersected(s)r & s 等价。

../../_images/qrect-intersect.png

另请参阅

intersects() united() operator&=()

intersects(r)#
参数:

rQRectF

返回类型:

bool

如果此矩形与给定 rectangle 交集(即它们之间有一个非空的交集面积),则返回 true,否则返回 false

可以使用 intersected() 函数检索交集矩形。

另请参阅

contains()

isEmpty()#
返回类型:

bool

如果矩形为空,则返回 true,否则返回 false

一个空的矩形具有 width() <= 0 或 height() <= 0。空的矩形不是有效的(即 isEmpty() == ! isValid() )。

使用 normalized() 函数检索一个角落已交换的矩形。

isNull()#
返回类型:

bool

如果矩形为空矩形,则返回 true,否则返回 false

空矩形宽度和高度都设置为 0。空矩形也是空的,因此不有效。

另请参阅

isEmpty() isValid()

isValid()#
返回类型:

bool

如果矩形有效,则返回 true,否则返回 false

有效的矩形其宽度 width() > 0 初始密度 height() > 0。请注意,对于无效矩形,不规范的操作(例如交集)是没有定义的。有效矩形不为空(即,isValid() == ! isEmpty() )。

另请参阅

isNull() isEmpty()

left()#
返回类型:

float

返回矩形左侧的坐标 x。相当于 x()

marginsAdded(margins)#
参数:

margins - QMarginsF

返回类型:

矩形浮点数

返回通过 margins 增长的矩形。

另请参阅

operator+=() marginsRemoved() operator-=()

marginsRemoved(margins)#
参数:

margins - QMarginsF

返回类型:

矩形浮点数

删除形状边框与矩形的外边距,使矩形变小。

另请参阅

marginsAdded() operator+=() operator-=()

moveBottom(pos)#
参数:

pos - 浮点型

沿垂直方向移动矩形,使矩形的底部边缘达到指定的有限 y 坐标。矩形的大小不改变。

moveBottomLeft(p)#
参数:

pQPointF

移动矩形,使矩形的左下角位于指定的 位置。矩形的尺寸保持不变。

moveBottomRight(p)#
参数:

pQPointF

移动矩形,使矩形的右下角位于指定的 位置。矩形的尺寸不改变。

moveCenter(p)#
参数:

pQPointF

移动矩形,使矩形的中心点位于指定的 位置。矩形的尺寸不改变。

另请参阅

中心点位置

moveLeft(pos)#
参数:

pos - 浮点型

沿水平方向移动矩形,使矩形的左侧边缘达到指定的有限 x 坐标。矩形的尺寸不改变。

moveRight(pos)#
参数:

pos - 浮点型

水平移动矩形,使矩形的右边缘位于指定的有限 x 坐标。矩形的尺寸保持不变。

moveTo(p)#
参数:

pQPointF

这是一个重载函数。

移动矩形,使矩形的左上角位于指定的 位置

moveTo(x, y)
参数:
  • x – float

  • y – float

移动矩形,使矩形的左上角位于给定的位置(xy)。矩形的尺寸不变。两个参数都必须是有限的。

另请参阅

translate() moveTopLeft()

moveTop(pos)#
参数:

pos - 浮点型

垂直移动矩形,使矩形的上边缘位于指定的有限 y 坐标。矩形的尺寸保持不变。

另请参阅

top() setTop() moveBottom()

moveTopLeft(p)#
参数:

pQPointF

移动矩形,使矩形的左上角位于指定 位置。矩形的尺寸保持不变。

moveTopRight(p)#
参数:

pQPointF

将矩形移动,保留顶右角为指定的位置。矩形的尺寸不变。

normalized()#
返回类型:

矩形浮点数

返回一个规范化的矩形;即一个非负宽度和高度的矩形。

如果 width() < 0,函数将左和右角颠倒,如果 height() < 0,则它还将顶部和底部角度颠倒。

另请参阅

isValid() isEmpty()

__ne__(r2)#
参数:

r2QRectF

返回类型:

bool

如果矩形 r1r2 差异足够大,则返回 true,否则返回 false

警告

此函数不检查严格不等式;相反,它使用模糊比较来比较矩形的坐标。

__and__(r)#
参数:

rQRectF

返回类型:

矩形浮点数

返回此矩形与给定 rectangle 的交集。如果没有交集,则返回空矩形。

另请参阅

operator&=() intersected()

__iand__(r)#
参数:

rQRectF

返回类型:

矩形浮点数

与此矩形相交于给定的 rectangle

另请参阅

intersected() operator&()

__add__(lhs)#
参数:

lhsQMarginsF

返回类型:

矩形浮点数

这是一个重载函数。

返回通过 rhs 边距扩展的 lhs 矩形。

__add__(rhs)
参数:

rhsQMarginsF

返回类型:

矩形浮点数

返回通过 rhs 边距扩展的 lhs 矩形。

__iadd__(margins)#
参数:

margins - QMarginsF

返回类型:

矩形浮点数

margins 添加到矩形,扩大它。

另请参阅

marginsAdded() marginsRemoved() operator-=()

__sub__(rhs)#
参数:

rhsQMarginsF

返回类型:

矩形浮点数

返回通过 rhs 边距缩小的 lhs 矩形。

__isub__(margins)#
参数:

margins - QMarginsF

返回类型:

矩形浮点数

返回一个通过 margins 缩小的矩形。

另请参阅

marginsRemoved() operator+=() marginsAdded()

__eq__(r2)#
参数:

r2QRectF

返回类型:

bool

如果矩形 r1r2 大致相等,则返回 true,否则返回 false

警告

此函数不检查严格相等性;相反,它使用模糊比较来比较矩形的坐标。

另请参阅

qFuzzyCompare

__or__(r)#
参数:

rQRectF

返回类型:

矩形浮点数

返回此矩形和给定矩形 rectangle 的边界矩形。

另请参阅

united() operator|=()

__ior__(r)#
参数:

rQRectF

返回类型:

矩形浮点数

将此矩形与给定的 rectangle 合并。

另请参阅

united() 运算符|()

right()#
返回类型:

float

返回矩形右侧边的 x 坐标。

setBottom(pos)#
参数:

pos - 浮点型

将矩形的下边沿设置给定的有限 y 坐标。可能会更改高度,但永远不会改变矩形的顶边。

另请参阅

bottom() moveBottom()

setBottomLeft(p)#
参数:

pQPointF

将矩形的左下角设置给定的 位置。可能会更改大小,但永远不会更改矩形的右上角。

setBottomRight(p)#
参数:

pQPointF

将矩形的右下角设置给定的 位置。可能会更改大小,但永远不会更改矩形的左上角。

setCoords(x1, y1, x2, y2)#
参数:
  • x1 – 浮点数

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

将矩形的左上角坐标设置为 (x1, y1),并将矩形的右下角坐标设置为 (x2, y2)。所有参数都必须是有限的。

另请参阅

getCoords() setRect()

setHeight(h)#
参数:

h – float

将矩形的宽度设置为给定的有界 高度。底部边缘会改变,但顶部边缘不会改变。

另请参阅

height() setSize()

setLeft(pos)#
参数:

pos - 浮点型

将矩形的左侧边界设置为给定的有界 x 坐标。可能会改变宽度,但永远不会改变矩形的右侧边界。

等同于 setX() .

另请参阅

left() moveLeft()

setRect(x, y, w, h)#
参数:
  • x – float

  • y – float

  • w – float

  • h – float

将矩形左上角的坐标设置为 (xy),并将大小设置为给定的 。所有参数必须是有界的。

另请参阅

getRect() setCoords()

setRight(pos)#
参数:

pos - 浮点型

将矩形的右侧边界设置为给定的有界 x 坐标。可能会改变宽度,但永远不会改变矩形的左侧边界。

另请参阅

right() moveRight()

setSize(s)#
参数:

sQSizeF

将矩形的尺寸设置为给定的有限size。左上角不移动。

setTop(pos)#
参数:

pos - 浮点型

将矩形的顶边设置为给定的有限y坐标。可能会改变高度,但绝不会改变矩形的底边。

相当于setY()

另请参阅

top() moveTop()

setTopLeft(p)#
参数:

pQPointF

将矩形的左上角设置到给定的位置。可能会改变大小,但绝不会改变矩形的右下角。

另请参阅

topLeft() moveTopLeft()

setTopRight(p)#
参数:

pQPointF

将矩形的右上角设置到给定的位置。可能会改变大小,但绝不会改变矩形的左下角。

另请参阅

topRight() moveTopRight()

setWidth(w)#
参数:

w – float

将矩形的宽度设置为给定的有限width。更改右侧边,但不会更改左侧边。

另请参阅

width() setSize()

setX(pos)#
参数:

pos - 浮点型

将矩形的左侧边界设置为给定的有界 x 坐标。可能会改变宽度,但永远不会改变矩形的右侧边界。

等于 setLeft() .

另请参阅

x() setY() setTopLeft()

setY(pos#
参数:

pos - 浮点型

将矩形的顶边设置为给定的有限y坐标。可能会改变高度,但绝不会改变矩形的底边。

等于 setTop() .

另请参阅

y() setX() setTopLeft()

size(#
返回类型:

大小浮点数

返回矩形的尺寸。

另请参阅

setSize() width() height()

toAlignedRect(#
返回类型:

矩形

返回一个基于本矩形值的 QRect,它是包含本矩形的可能的最小整数矩形。

另请参阅

toRect()

toRect(#
返回类型:

矩形

返回一个基于本矩形值的 QRect。注意,返回矩形中的坐标已被四舍五入到最接近的整数。

另请参阅

QRectF() toAlignedRect() toRectF()

top(#
返回类型:

float

返回矩形顶部边缘的 y 坐标。等于 y() .

topLeft()#
返回类型:

点浮点数

返回矩形左上角的位置。

另请参阅

setTopLeft() top() left()

topRight()#
返回类型:

点浮点数

返回矩形右上角的位置。

另请参阅

setTopRight() top() right()

translate(p)#
参数:

pQPointF

这是一个重载函数。

将矩形移动 offset. 沿 x 轴移动 x() 并沿 y 轴移动 y(),相对于当前位置。

translate(dx, dy)
参数:
  • dx – float

  • dy – float

将矩形移动 dx 沿 x 轴和 dy 沿 y 轴移动,相对于当前位置。正值向右和向下移动矩形。两个参数都必须是有限的。

translated(p)#
参数:

pQPointF

返回类型:

矩形浮点数

这是一个重载函数。

返回一个偏移量为 offset 的矩形的副本。沿 x 轴偏移 x() 以及沿 y 轴偏移 offset,相对于当前位置。

translated(dx, dy)
参数:
  • dx – float

  • dy – float

返回类型:

矩形浮点数

返回一个沿 x 轴偏移 dx 并沿 y 轴偏移 dy 的矩形的副本,相对于当前位置。正值将矩形向右下方移动。两个参数都必须是有限的。

另请参阅

translate()

transposed()
返回类型:

矩形浮点数

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能出现错误。

返回一个交换其宽度和高度的矩形的副本。

r = {1.5, 5.1, 4.2, 2.4}
r = r.transposed() # r == {1.5, 5.1, 2.4, 4.2}

另请参阅

transposed()

united(other)
参数:

otherQRectF

返回类型:

矩形浮点数

返回此矩形和给定矩形 rectangle 的边界矩形。

../../_images/qrect-unite.png

另请参阅

intersected()

width()
返回类型:

float

返回矩形的宽度。

另请参阅

setWidth() height() size()

x()
返回类型:

float

返回矩形左侧边缘的 x 坐标。等同于 left()

另请参阅

setX() y() topLeft()

y()
返回类型:

float

返回矩形顶部的 y 坐标。等同于 top()

另请参阅

setY() x() topLeft()