PySide6.QtCore.QRect¶
- class QRect¶
-
概要¶
方法¶
def
__init__()
def
__reduce__()
def
__repr__()
def
adjust()
def
adjusted()
def
bottom()
def
bottomLeft()
def
bottomRight()
def
center()
def
contains()
def
getCoords()
def
getRect()
def
height()
def
intersected()
def
intersects()
def
isEmpty()
def
isNull()
def
isValid()
def
left()
def
marginsAdded()
def
marginsRemoved()
def
moveBottom()
def
moveBottomLeft()
def
moveCenter()
def
moveLeft()
def
moveRight()
def
moveTo()
def
moveTop()
def
moveTopLeft()
def
moveTopRight()
def
normalized()
def
__ne__()
def
__and__()
def
__iand__()
def
__add__()
def
__iadd__()
def
__sub__()
def
__isub__()
def
__eq__()
def
__or__()
def
__ior__()
def
right()
def
setBottom()
def
setBottomLeft()
def
setBottomRight()
def
setCoords()
def
setHeight()
def
setLeft()
def
setRect()
def
setRight()
def
setSize()
def
setTop()
def
setTopLeft()
def
setTopRight()
def
setWidth()
def
setX()
def
setY()
def
size()
def
toRectF()
def
top()
def
topLeft()
def
topRight()
def
translate()
def
translated()
def
transposed()
def
united()
def
width()
def
x()
def
y()
静态函数¶
def
span()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
矩形通常表示为左上角和大小。
QRect
的大小(宽度和高度)始终等同于构成其渲染基础的数学矩形。一个
QRect
可以通过一组左、上、宽度和高度的整数来构造,或者通过一个QPoint
和一个QSize
来构造。以下代码创建了两个相同的矩形。r1 = QRect(100, 200, 11, 16) r2 = QRect(QPoint(100, 200), QSize(11, 16))
有一个第三种构造函数,它使用左上角和右下角的坐标创建一个
QRect
,但我们建议您避免使用它。原因是由于历史原因,bottom()
和right()
函数返回的值与矩形的真实右下角有所偏差。QRect
类提供了一系列函数,这些函数返回矩形的各种坐标,并允许对这些坐标进行操作。QRect
还提供了相对于各种坐标移动矩形的函数。此外,还有一个moveTo()
函数,该函数移动矩形,使其左上角位于给定的坐标处。或者,translate()
函数相对于当前位置移动矩形给定的偏移量,而translated()
函数返回此矩形的平移副本。size()
函数返回矩形的尺寸作为QSize
。尺寸也可以分别使用width()
和height()
函数来获取。要操作尺寸,请使用setSize()
、setWidth()
或setHeight()
函数。或者,可以通过应用设置矩形坐标的函数之一来更改尺寸,例如setBottom()
或setRight()
。contains()
函数用于判断给定点是否在矩形内,而intersects()
函数如果此矩形与给定矩形相交则返回true
。QRect
类还提供了intersected()
函数,该函数返回相交的矩形,以及united()
函数,该函数返回包含给定矩形和此矩形的矩形:如果
left()
>right()
或top()
>bottom()
,则isEmpty()
函数返回true
。请注意,空矩形是无效的:如果left()
<=right()
并且top()
<=bottom()
,则isValid()
函数返回true
。另一方面,空矩形(isNull()
== true)的宽度和高度都设置为0。请注意,由于
QRect
和QRectF
的定义方式,一个空的QRect
基本上是以与QRectF
相同的方式定义的。最后,
QRect
对象也可以被流式传输和比较。渲染¶
当使用抗锯齿绘制器时,
QRect
的边界线将在数学矩形边界线的两侧对称渲染。但是,当使用锯齿绘制器(默认)时,适用其他规则。然后,当使用一像素宽的笔渲染时,
QRect
的边界线将渲染在数学矩形边界线的右侧和下方。当使用两像素宽的笔渲染时,边界线将在中间被数学矩形分割。每当笔设置为偶数像素时都会出现这种情况,而使用奇数像素的笔渲染时,多余的像素将像一像素情况一样渲染到数学矩形的右侧和下方。
逻辑表示
一像素宽的笔
两像素宽的笔
三像素宽的笔
坐标¶
QRect
类提供了一系列函数,这些函数返回矩形的各种坐标,并允许对这些坐标进行操作。QRect
还提供了相对于各种坐标移动矩形的函数。例如,
left()
、setLeft()
和moveLeft()
函数作为示例:left()
返回矩形左边界的x坐标,setLeft()
将矩形的左边界设置为给定的x坐标(可能会改变宽度,但永远不会改变矩形的右边界),而moveLeft()
水平移动整个矩形,将矩形的左边界移动到给定的x坐标,并且保持矩形的大小不变。请注意,由于历史原因,
bottom()
和right()
函数返回的值与矩形的真实右下角存在偏差:right()
函数返回 **left()
+width()
- 1,而bottom()
函数返回 **top()
+height()
- 1。同样的情况也适用于bottomRight()
便捷函数返回的点。此外,topRight()
和bottomLeft()
函数的 x 和 y 坐标分别包含与真实右边缘和底边缘相同的偏差。我们建议您使用
x()
+width()
和y()
+height()
来找到真正的右下角,并避免使用right()
和bottom()
。另一种解决方案是使用QRectF
:QRectF
类使用浮点精度定义平面中的矩形,并且right()
和bottom()
函数确实返回右和下的坐标。也可以使用
adjust()
函数向此矩形的坐标添加偏移量,以及使用adjusted()
函数基于原始矩形的调整来检索一个新矩形。如果宽度或高度为负,请使用normalized()
函数来检索一个角点交换的矩形。此外,
QRect
提供了getCoords()
函数,用于提取矩形左上角和右下角的位置,以及getRect()
函数,用于提取矩形的左上角、宽度和高度。使用setCoords()
和setRect()
函数可以一次性操作矩形的坐标和尺寸。约束条件¶
QRect
仅限于int
类型的最小值和最大值。对QRect
的操作如果可能导致超出此范围的值,将导致未定义行为。- __init__()¶
构造一个空矩形。
另请参阅
使用给定的
topLeft
和bottomRight
角构造一个矩形,两者都包括在内。如果
bottomRight
位于topLeft
的更高和更左侧,则定义的矩形不包含角落。使用给定的
topLeft
角和给定的size
构造一个矩形。另请参阅
- __init__(left, top, width, height)
- Parameters:
left – int
top – int
width – int
height – int
构造一个以(
x
,y
)为左上角,并具有给定width
和height
的矩形。另请参阅
- __reduce__()¶
- Return type:
字符串
- __repr__()¶
- Return type:
字符串
- adjust(x1, y1, x2, y2)¶
- Parameters:
x1 – 整数
y1 – 整数
x2 – 整数
y2 – 整数
将
dx1
、dy1
、dx2
和dy2
分别添加到矩形的现有坐标中。另请参阅
返回一个新的矩形,分别将
dx1
、dy1
、dx2
和dy2
添加到该矩形的现有坐标中。另请参阅
- bottom()¶
- Return type:
整数
返回矩形底边的y坐标。
请注意,由于历史原因,此函数返回
top()
+height()
- 1;使用y()
+height()
来获取真实的 y 坐标。返回矩形左下角的位置。请注意,由于历史原因,此函数返回
QPoint
(left()
,top()
+height()
- 1)。返回矩形右下角的位置。
请注意,由于历史原因,此函数返回
QPoint
(left()
+width()
-1,top()
+height()
- 1)。返回矩形的中心点。
另请参阅
如果给定的
point
在矩形内部或边缘上,则返回true
,否则返回false
。如果proper
为true,则此函数仅在给定的point
在矩形内部(即不在边缘上)时返回true
。另请参阅
- contains(r[, proper=false])
- Parameters:
r –
QRect
proper – 布尔值
- Return type:
布尔
这是一个重载函数。
如果给定的
rectangle
在此矩形内,则返回true
。否则返回false
。如果proper
为true,则此函数仅在rectangle
完全在此矩形内(不在边缘)时返回true
。- contains(x, y)
- Parameters:
x – 整数
y – 整数
- Return type:
布尔
这是一个重载函数。
如果点 (
x
,y
) 在此矩形内,则返回true
,否则返回false
。- contains(x, y, proper)
- Parameters:
x – 整数
y – 整数
proper – 布尔值
- Return type:
布尔
这是一个重载函数。
如果点 (
x
,y
) 在矩形内部或边缘上,则返回true
,否则返回false
。如果proper
为 true,则此函数仅在点完全位于矩形内部(不在边缘上)时返回true
。- getCoords()¶
- Return type:
PyObject
提取矩形左上角的位置到 *``x1`` 和 *``y1``,以及右下角的位置到 *``x2`` 和 *``y2``。
另请参阅
- getRect()¶
- Return type:
PyObject
提取矩形左上角的位置到 *``x`` 和 *``y``,并将其尺寸提取到 *``width`` 和 *``height``。
另请参阅
- height()¶
- Return type:
整数
返回矩形的高度。
另请参阅
返回此矩形与给定
rectangle
的交集。请注意,r.intersected(s)
等同于r & s
。另请参阅
intersects()
united()
operator&=()
如果此矩形与给定的
rectangle
相交(即至少有一个像素同时位于两个矩形内),则返回true
,否则返回false
。可以使用
intersected()
函数来获取相交矩形。另请参阅
- isEmpty()¶
- Return type:
布尔
如果矩形为空,则返回
true
,否则返回false
。一个空的矩形具有
left()
>right()
或top()
>bottom()
。一个空的矩形是无效的(即,isEmpty() == !isValid()
)。使用
normalized()
函数来检索一个角点被交换的矩形。- isNull()¶
- Return type:
布尔
如果矩形是空矩形,则返回
true
,否则返回false
。一个空矩形的宽度和高度都设置为0(即,
right()
==left()
- 1 和bottom()
==top()
- 1)。空矩形也是空的,因此是无效的。- isValid()¶
- Return type:
布尔
如果矩形有效,则返回
true
,否则返回false
。一个有效的矩形具有
left()
<=right()
和top()
<=bottom()
。请注意,对于无效的矩形,像交集这样的非平凡操作是没有定义的。一个有效的矩形不是空的(即,isValid() == !isEmpty()
)。- left()¶
- Return type:
整数
返回矩形左边缘的x坐标。等同于
x()
。返回一个由
margins
扩展的矩形。另请参阅
operator+=()
marginsRemoved()
operator-=()
从矩形中移除
margins
,使其缩小。另请参阅
marginsAdded()
operator+=()
operator-=()
- moveBottom(pos)¶
- Parameters:
pos – 整数
将矩形垂直移动,使矩形的底边位于给定的
y
坐标处。矩形的大小保持不变。另请参阅
移动矩形,将左下角留在给定的
position
。矩形的大小保持不变。移动矩形,将右下角留在给定的
position
。矩形的大小保持不变。移动矩形,将中心点留在给定的
position
。矩形的大小保持不变。另请参阅
- moveLeft(pos)¶
- Parameters:
pos – 整数
将矩形水平移动,使矩形的左边缘位于给定的
x
坐标处。矩形的大小保持不变。另请参阅
- moveRight(pos)¶
- Parameters:
pos – 整数
将矩形水平移动,使矩形的右边缘位于给定的
x
坐标处。矩形的大小保持不变。另请参阅
移动矩形,将左上角留在给定的
position
处。- moveTo(x, t)
- Parameters:
x – 整数
t – 整数
移动矩形,将左上角放置在给定位置(
x
,y
)。矩形的大小保持不变。另请参阅
- moveTop(pos)¶
- Parameters:
pos – 整数
将矩形垂直移动,使矩形的上边缘位于给定的
y
坐标处。矩形的大小保持不变。另请参阅
移动矩形,将左上角放置在给定的
position
。矩形的大小保持不变。移动矩形,使右上角位于给定的
position
。矩形的大小保持不变。返回一个标准化的矩形;即,一个具有非负宽度和高度的矩形。
如果
width()
< 0,函数会交换左右角,如果height()
< 0,函数会交换上下角。同时,角从非包含性变为包含性。如果矩形
lhs
和rhs
不同,则返回true
,否则返回false
。- __ne__(rhs)
- Parameters:
rhs –
QRectF
- Return type:
布尔
返回此矩形与给定
rectangle
的交集。如果没有交集,则返回一个空矩形。另请参阅
operator&=()
intersected()
将此矩形与给定的
rectangle
相交。另请参阅
intersected()
operator&()
这是一个重载函数。
返回由
margins
扩展的rectangle
。返回由
margins
扩展的rectangle
。将
margins
添加到矩形中,使其扩大。另请参阅
marginsAdded()
marginsRemoved()
operator-=()
返回由
rhs
边距缩小的lhs
矩形。返回一个由
margins
缩小的矩形。另请参阅
marginsRemoved()
operator+=()
marginsAdded()
如果矩形
lhs
和rhs
相等,则返回true
,否则返回false
。- __eq__(rhs)
- Parameters:
rhs –
QRectF
- Return type:
布尔
返回此矩形与给定
rectangle
的边界矩形。另请参阅
operator|=()
united()
将此矩形与给定的
rectangle
合并。另请参阅
united()
operator|()
- right()¶
- Return type:
整数
返回矩形右边界的x坐标。
请注意,由于历史原因,此函数返回
left()
+width()
- 1;使用x()
+width()
来获取真实的 x 坐标。- setBottom(pos)¶
- Parameters:
pos – 整数
将矩形的底边设置为给定的
y
坐标。可能会改变高度,但永远不会改变矩形的顶边。另请参阅
将矩形的左下角设置为给定的
position
。可能会改变大小,但永远不会改变矩形的右上角。将矩形的右下角设置为给定的
position
。可能会改变大小,但永远不会改变矩形的左上角。- setCoords(x1, y1, x2, y2)¶
- Parameters:
x1 – 整数
y1 – 整数
x2 – 整数
y2 – 整数
将矩形的左上角坐标设置为(
x1
,y1
),并将其右下角坐标设置为(x2
,y2
)。另请参阅
- setHeight(h)¶
- Parameters:
h – 整数
将矩形的高度设置为给定的
height
。底边会改变,但顶边不会改变。- setLeft(pos)¶
- Parameters:
pos – 整数
将矩形的左边缘设置为给定的
x
坐标。可能会改变宽度,但永远不会改变矩形的右边缘。等同于
setX()
。另请参阅
- setRect(x, y, w, h)¶
- Parameters:
x – 整数
y – 整数
w – 整数
h – 整数
将矩形的左上角坐标设置为(
x
,y
),并将其大小设置为给定的width
和height
。另请参阅
- setRight(pos)¶
- Parameters:
pos – 整数
将矩形的右边缘设置为给定的
x
坐标。可能会改变宽度,但永远不会改变矩形的左边缘。另请参阅
将矩形的大小设置为给定的
size
。左上角不会移动。另请参阅
- setTop(pos)¶
- Parameters:
pos – 整数
将矩形的上边缘设置为给定的
y
坐标。可能会改变高度,但永远不会改变矩形的下边缘。等同于
setY()
。将矩形的左上角设置为给定的
position
。可能会改变大小,但永远不会改变矩形的右下角。另请参阅
将矩形的右上角设置为给定的
position
。可能会改变大小,但永远不会改变矩形的左下角。另请参阅
- setWidth(w)¶
- Parameters:
w – 整数
将矩形的宽度设置为给定的
width
。右边缘会改变,但左边缘不会改变。- setX(x)¶
- Parameters:
x – 整数
将矩形的左边缘设置为给定的
x
坐标。可能会改变宽度,但永远不会改变矩形的右边缘。等同于
setLeft()
。另请参阅
- setY(y)¶
- Parameters:
y – 整数
将矩形的上边缘设置为给定的
y
坐标。可能会改变高度,但永远不会改变矩形的下边缘。等同于
setTop()
。另请参阅
返回矩形的大小。
返回一个跨越两点
p1
和p2
的矩形,包括这两点及其之间的所有内容。返回此矩形为具有浮点精度的矩形。
- top()¶
- Return type:
整数
返回矩形顶边的y坐标。等同于
y()
。另请参阅
返回矩形左上角的位置。
另请参阅
返回矩形右上角的位置。
请注意,由于历史原因,此函数返回
QPoint
(left()
+width()
-1,top()
)。另请参阅
这是一个重载函数。
将矩形
offset
移动。x()
沿x轴和offset
。y()
沿y轴,相对于当前位置。- translate(dx, dy)
- Parameters:
dx – 整数
dy – 整数
将矩形沿x轴移动
dx
,沿y轴移动dy
,相对于当前位置。正值将矩形向右和向下移动。这是一个重载函数。
返回一个矩形副本,该副本相对于当前位置沿x轴平移
offset
。x()
,沿y轴平移offset
。y()
。- translated(dx, dy)
- Parameters:
dx – 整数
dy – 整数
- Return type:
返回一个矩形的副本,该矩形相对于当前位置沿x轴平移
dx
,沿y轴平移dy
。正值将矩形向右和向下移动。另请参阅
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回一个宽度和高度交换后的矩形副本:
r = {15, 51, 42, 24} r = r.transposed() # r == {15, 51, 24, 42}
另请参阅
返回此矩形和给定
rectangle
的边界矩形。另请参阅
- width()¶
- Return type:
整数
返回矩形的宽度。
另请参阅
- x()¶
- Return type:
整数
返回矩形左边界的x坐标。等同于
left()
。- y()¶
- Return type:
整数
返回矩形上边缘的y坐标。等同于
top()
。