PySide6.QtCore.QRectF

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() 函数,该函数返回包含给定矩形和此矩形的矩形:

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

请注意,由于QRectQRectF的定义方式,一个空的QRectF基本上是以与QRect相同的方式定义的。

最后,QRectF 对象也可以被流式传输和比较。

渲染

当使用抗锯齿绘制器时,QRectF的边界线将在数学矩形边界线的两侧对称渲染。但是,当使用锯齿绘制器(默认)时,适用其他规则。

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

当使用两像素宽的笔渲染时,边界线将在中间被数学矩形分割。每当笔设置为偶数像素时都会出现这种情况,而使用奇数像素的笔渲染时,多余的像素将像一像素情况一样渲染到数学矩形的右侧和下方。

qrectf-diagram-one4

qrectf-diagram-one4

逻辑表示

一像素宽的笔

qrectf-diagram-three6

qrectf-diagram-three6

两像素宽的笔

三像素宽的笔

坐标

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

构造一个空矩形。

另请参阅

isNull()

__init__(rect)
Parameters:

rectQRect

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

注意

此函数,与toRectF()类似,保留了rectanglesize(),而不是其bottomRight()角。

另请参阅

toRect() toRectF()

__init__(topleft, bottomRight)
Parameters:

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

__init__(topleft, size)
Parameters:

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

另请参阅

setTopLeft() setSize()

__init__(left, top, width, height)
Parameters:
  • left – 浮点数

  • top – 浮点数

  • width – 浮点数

  • height – 浮点数

构造一个以(x, y)为左上角,并具有给定widthheight的矩形。所有参数必须是有限的。

另请参阅

setRect()

__reduce__()
Return type:

字符串

__repr__()
Return type:

字符串

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

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

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

另请参阅

adjusted() setRect()

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

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

Return type:

QRectF

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

另请参阅

adjust()

bottom()
Return type:

浮点数

返回矩形底边的y坐标。

bottomLeft()
Return type:

QPointF

返回矩形左下角的位置。

bottomRight()
Return type:

QPointF

返回矩形右下角的位置。

center()
Return type:

QPointF

返回矩形的中心点。

另请参阅

moveCenter()

contains(p)
Parameters:

pQPointF

Return type:

布尔

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

另请参阅

intersects()

contains(r)
Parameters:

rQRectF

Return type:

布尔

这是一个重载函数。

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

contains(x, y)
Parameters:
  • x – 浮点数

  • y – 浮点数

Return type:

布尔

这是一个重载函数。

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

getCoords()
Return type:

PyObject

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

另请参阅

setCoords() getRect()

getRect()
Return type:

PyObject

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

另请参阅

setRect() getCoords()

height()
Return type:

浮点数

返回矩形的高度。

另请参阅

setHeight() width() size()

intersected(other)
Parameters:

其他QRectF

Return type:

QRectF

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

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

另请参阅

intersects() united() operator&=()

intersects(r)
Parameters:

rQRectF

Return type:

布尔

如果此矩形与给定的rectangle相交(即它们之间存在非空的重叠区域),则返回true,否则返回false

可以使用intersected()函数来获取相交矩形。

另请参阅

contains()

isEmpty()
Return type:

布尔

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

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

使用normalized()函数来检索一个角点被交换的矩形。

isNull()
Return type:

布尔

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

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

另请参阅

isEmpty() isValid()

isValid()
Return type:

布尔

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

一个有效的矩形具有width() > 0 和 height() > 0。请注意,对于无效的矩形,像交集这样的非平凡操作是未定义的。一个有效的矩形不是空的(即,isValid() == ! isEmpty() )。

left()
Return type:

浮点数

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

marginsAdded(margins)
Parameters:

边距QMarginsF

Return type:

QRectF

返回一个由margins扩展的矩形。

另请参阅

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

marginsRemoved(margins)
Parameters:

边距QMarginsF

Return type:

QRectF

从矩形中移除margins,使其缩小。

另请参阅

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

moveBottom(pos)
Parameters:

pos – 浮点数

将矩形垂直移动,使矩形的底边位于给定的有限y坐标处。矩形的大小保持不变。

moveBottomLeft(p)
Parameters:

pQPointF

移动矩形,将左下角留在给定的position。矩形的大小保持不变。

moveBottomRight(p)
Parameters:

pQPointF

移动矩形,将右下角留在给定的position。矩形的大小保持不变。

moveCenter(p)
Parameters:

pQPointF

移动矩形,将中心点留在给定的position。矩形的大小保持不变。

另请参阅

center()

moveLeft(pos)
Parameters:

pos – 浮点数

将矩形水平移动,使矩形的左边缘位于给定的有限x坐标处。矩形的大小保持不变。

moveRight(pos)
Parameters:

pos – 浮点数

将矩形水平移动,使矩形的右边缘位于给定的有限x坐标处。矩形的大小保持不变。

moveTo(p)
Parameters:

pQPointF

这是一个重载函数。

移动矩形,将左上角留在给定的 position

moveTo(x, y)
Parameters:
  • x – 浮点数

  • y – 浮点数

移动矩形,将左上角放置在给定位置(x, y)。矩形的大小保持不变。两个参数必须是有限的。

另请参阅

translate() moveTopLeft()

moveTop(pos)
Parameters:

pos – 浮点数

将矩形垂直移动,使矩形的顶线位于给定的有限y坐标处。矩形的大小保持不变。

另请参阅

top() setTop() moveBottom()

moveTopLeft(p)
Parameters:

pQPointF

移动矩形,将左上角放置在给定的position。矩形的大小保持不变。

moveTopRight(p)
Parameters:

pQPointF

移动矩形,将右上角留在给定的position。矩形的大小保持不变。

normalized()
Return type:

QRectF

返回一个标准化的矩形;即,一个具有非负宽度和高度的矩形。

如果 width() < 0,函数会交换左右角,如果 height() < 0,函数会交换上下角。

另请参阅

isValid() isEmpty()

__ne__(rhs)
Parameters:

rhsQRect

Return type:

布尔

__ne__(rhs)
Parameters:

rhsQRectF

Return type:

布尔

如果矩形 lhsrhs 有显著差异,则返回 true,否则返回 false

警告

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

__and__(r)
Parameters:

rQRectF

Return type:

QRectF

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

另请参阅

operator&=() intersected()

__iand__(r)
Parameters:

rQRectF

Return type:

QRectF

将此矩形与给定的rectangle相交。

另请参阅

intersected() operator&()

__add__(lhs)
Parameters:

lhsQMarginsF

Return type:

QRectF

这是一个重载函数。

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

__add__(rhs)
Parameters:

rhsQMarginsF

Return type:

QRectF

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

__iadd__(margins)
Parameters:

边距QMarginsF

Return type:

QRectF

margins添加到矩形中,使其扩大。

另请参阅

marginsAdded() marginsRemoved() operator-=()

__sub__(rhs)
Parameters:

rhsQMarginsF

Return type:

QRectF

返回由lhs矩形缩小rhs边距后的结果。

__isub__(margins)
Parameters:

边距QMarginsF

Return type:

QRectF

返回一个由margins缩小的矩形。

另请参阅

marginsRemoved() operator+=() marginsAdded()

__eq__(rhs)
Parameters:

rhsQRect

Return type:

布尔

__eq__(rhs)
Parameters:

rhsQRectF

Return type:

布尔

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

警告

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

另请参阅

qFuzzyCompare

__or__(r)
Parameters:

rQRectF

Return type:

QRectF

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

另请参阅

united() operator|=()

__ior__(r)
Parameters:

rQRectF

Return type:

QRectF

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

另请参阅

united() operator|()

right()
Return type:

浮点数

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

setBottom(pos)
Parameters:

pos – 浮点数

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

另请参阅

bottom() moveBottom()

setBottomLeft(p)
Parameters:

pQPointF

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

setBottomRight(p)
Parameters:

pQPointF

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

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

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

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

另请参阅

getCoords() setRect()

setHeight(h)
Parameters:

h – 浮点数

将矩形的高度设置为给定的有限height。底边会改变,但顶边不会改变。

另请参阅

height() setSize()

setLeft(pos)
Parameters:

pos – 浮点数

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

等同于 setX()

另请参阅

left() moveLeft()

setRect(x, y, w, h)
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

将矩形的左上角坐标设置为(x, y),并将其大小设置为给定的widthheight。所有参数必须为有限值。

另请参阅

getRect() setCoords()

setRight(pos)
Parameters:

pos – 浮点数

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

另请参阅

right() moveRight()

setSize(s)
Parameters:

sQSizeF

将矩形的大小设置为给定的有限size。左上角不会移动。

setTop(pos)
Parameters:

pos – 浮点数

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

等同于 setY()

另请参阅

top() moveTop()

setTopLeft(p)
Parameters:

pQPointF

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

另请参阅

topLeft() moveTopLeft()

setTopRight(p)
Parameters:

pQPointF

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

另请参阅

topRight() moveTopRight()

setWidth(w)
Parameters:

w – 浮点数

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

另请参阅

width() setSize()

setX(pos)
Parameters:

pos – 浮点数

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

等同于 setLeft()

另请参阅

x() setY() setTopLeft()

setY(pos)
Parameters:

pos – 浮点数

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

等同于 setTop()

另请参阅

y() setX() setTopLeft()

size()
Return type:

QSizeF

返回矩形的大小。

另请参阅

setSize() width() height()

toAlignedRect()
Return type:

QRect

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

另请参阅

toRect()

toRect()
Return type:

QRect

返回基于此矩形值的QRect。请注意,返回的矩形中的坐标将四舍五入到最接近的整数。

另请参阅

QRectF() toAlignedRect() toRectF()

top()
Return type:

浮点数

返回矩形上边缘的y坐标。等同于y()

topLeft()
Return type:

QPointF

返回矩形左上角的位置。

另请参阅

setTopLeft() top() left()

topRight()
Return type:

QPointF

返回矩形右上角的位置。

另请参阅

setTopRight() top() right()

translate(p)
Parameters:

pQPointF

这是一个重载函数。

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

translate(dx, dy)
Parameters:
  • dx – 浮点数

  • dy – 浮点数

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

translated(p)
Parameters:

pQPointF

Return type:

QRectF

这是一个重载函数。

返回一个矩形副本,该副本相对于当前位置沿x轴平移offsetx(),沿y轴平移offsety()

translated(dx, dy)
Parameters:
  • dx – 浮点数

  • dy – 浮点数

Return type:

QRectF

返回一个矩形副本,该副本相对于当前位置沿x轴平移dx,沿y轴平移dy。正值将矩形向右和向下移动。两个参数必须为有限值。

另请参阅

translate()

transposed()
Return type:

QRectF

警告

本节包含从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)
Parameters:

其他QRectF

Return type:

QRectF

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

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

另请参阅

intersected()

width()
Return type:

浮点数

返回矩形的宽度。

另请参阅

setWidth() height() size()

x()
Return type:

浮点数

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

另请参阅

setX() y() topLeft()

y()
Return type:

浮点数

返回矩形上边缘的y坐标。等同于top()

另请参阅

setY() x() topLeft()