- class QRect#
《QRect》类使用整数精度在平面上定义一个矩形。更多信息...
概述*
方法*
def
__init__()
def
__reduce__()
def
__repr__()
def
adjust()
def
adjusted()
def
bottom()
def
bottomLeft()
def
bottomRight()
def
center()
定义
contains()
定义
getCoords()
定义
getRect()
定义
height()
定义
intersects()
定义
isEmpty()
定义
isNull()
定义
isValid()
定义
left()
定义
moveBottom()
定义
moveCenter()
定义
moveLeft()
定义
moveRight()
定义
moveTo()
定义
moveTop()
定义
normalized()
定义
__ne__()
定义
__and__()
定义
__iand__()
定义
__add__()
定义
__iadd__()
定义
__sub__()
定义
__isub__()
定义
__eq__()
定义
__or__()
定义
__ior__()
定义
right()
定义
setBottom()
定义
setCoords()
定义
setHeight()
定义
setLeft()
定义
setRect()
定义
setRight()
定义
setSize()
定义
setTop()
定义
setTopLeft()
定义
setWidth()
定义
setX()
定义
setY()
定义
size()
定义
toRectF()
定义
top()
定义
topLeft()
定义
topRight()
定义
translate()
定义
translated()
定义
transposed()
定义
united()
定义
width()
定义
x()
定义
y()
静态函数#
定义
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()`》函数返回包围给定矩形和该矩形的矩形。
函数
isEmpty()
返回值为true
,当且仅当left()
>right()
或者top()
>bottom()
。请注意,空的矩形是无效的:函数isValid()
返回true
当且仅当left()
<=right()
并且top()
<=bottom()
。另一个方面,空的矩形(isNull()
== true)的宽度和高度都设置为 0。请注意,由于
QRect
和QRectF
的定义方式,空的QRect
与QRectF
在本质上定义方式相同。最后,
QRect
对象不仅可以进行流处理,还可以进行比较。渲染
当使用抗锯齿绘图工具时,
QRect
的边界线将在数学矩形的边界线的两侧对称渲染。但是,当使用有锯齿的绘图器(默认)时,则应用其他规则。然后,当使用宽度为 1 像素的笔进行渲染时,
QRect
的边界线将渲染到数学矩形边界线的右侧和下方。当使用宽度为 2 像素的笔进行渲染时,边界线将在数学矩形中间分开。这将在笔设置为偶数像素时发生,而使用奇数像素的笔进行渲染时,多余的像素将渲染到数学矩形的右侧和下方,就像在 1 像素的情况下一样。
逻辑表示
宽度为 1 像素的笔
宽度为 2 像素的笔
宽度为 3 像素的笔
坐标
QRect
类提供了一系列函数,用于返回各种矩形坐标,并允许对这些坐标进行操作。此外,QRect
还提供了一些函数来根据不同的坐标移动矩形。例如,以下函数:
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
的操作将产生未定义的行为。创建一个矩形,其左上角和右下角分别为
topLeft
和bottomRight
,两者都包含在内。如果
bottomRight
比左上角topLeft
更高并且在左侧,则定义的矩形将不包括角。- __init__()
创建一个空矩形。
另见
- __init__(left, top, width, height)
- 参数:
left – 整数
top – 整数
width – 整数
height – 整数
创建一个矩形,其左上角为 (
x
,y
),宽度和高度分别为所给值。另见
创建一个矩形,其左上角为
topLeft
,大小为所给参数。- __reduce__()#
- 返回类型:
对象
- __repr__()#
- 返回类型:
对象
- adjust(x1, y1, x2, y2)#
- 参数:
x1 – 整数
y1 – 整数
x2 – 整数
y2 – 整数
分别将
dx1
,dy1
,dx2
和dy2
添加到矩形现有坐标上。返回一个新的矩形,其中
dx1
,dy1
,dx2
和dy2
分别添加到矩形当前坐标。另见
- bottom()#
- 返回类型:
整数
返回矩形底部边的 y 坐标。
注意,由于历史原因,此函数返回
top()
+height()
- 1;使用y()
+height()
以获取真实 y 坐标。返回矩形左下角的位置。请注意,由于历史原因,该函数返回
QPoint
(left()
,top()
+height()
- 1)返回矩形右下角的位置。
请注意,由于历史原因,此函数返回
QPoint
(left()
+width()
-1,top()
+height()
- 1)返回矩形的中心点。
另见
- contains(x, y)#
- 参数:
x – int
y – int
- 返回类型:
bool
这是一个重载函数。
如果点 (
x
,y
) 在此矩形内,则返回true
,否则返回false
。- contains(x, y, proper)
- 参数:
x – int
y – int
proper – bool
- 返回类型:
bool
这是一个重载函数。
如果点(
x
,y
)在矩形内或在矩形边缘上,则返回true
;否则返回false
。如果proper
为true
,则该函数仅在点完全位于矩形内时返回true
(即不在边缘上)。- contains(r[, proper=false])
- 参数:
r –
QRect
proper – bool
- 返回类型:
bool
这是一个重载函数。
如果给定的
rectangle
在此矩形内,则返回true
;否则返回false
。如果proper
为true
,则该函数仅在矩形完全位于此矩形内时返回true
(即不在边缘上)。- contains(p[, proper=false])
- 参数:
p –
QPoint
proper – bool
- 返回类型:
bool
如果给定的
point
在矩形内或在矩形边缘上,则返回true
;否则返回false
。如果proper
为true
,则该函数仅在给定的point
完全位于矩形内时返回true
(即不在边缘上)。另见
- getCoords()#
- 返回类型:
PyObject
将矩形的左上角位置提取到 *``x1`` 和 *``y1``,将右下角位置提取到 *``x2`` 和 *``y2``。
- getRect()#
- 返回类型:
PyObject
将矩形的左上角位置提取到 *``x`` 和 *``y``,将尺寸提取到 *``width`` 和 *``height``。
- height()#
- 返回类型:
整数
返回矩形的宽度。
返回此矩形与给定
rectangle
的交集。注意,r.intersected(s)
等同于r & s
。另见
intersects()
united()
operator&=()
如果此矩形与给定的矩形相交(即,至少有一个像素在两个矩形中),则返回
true
;否则返回false
。可以通过使用
intersected()
函数来检索交集矩形。另见
- isEmpty()#
- 返回类型:
bool
如果矩形为空,则返回
true
,否则返回false
。空矩形具有
left()
>right()
或top()
>bottom()
的特性。空矩形无效(即 isEmpty() == !isValid()
)。使用
normalized()
函数来检索一个角落被交换的矩形。- isNull()#
- 返回类型:
bool
如果矩形是空矩形,则返回
true
,否则返回false
。空矩形宽度和高都设置为0(即
right()
==left()
- 1 且bottom()
==top()
- 1)。空矩形也是空的,因此它不是有效的。- isValid()#
- 返回类型:
bool
如果矩形有效,则返回
true
,否则返回false
。有效的矩形其
left()
<=right()
和top()
<=bottom()
。注意,对于无效矩形,不定义诸如交集这样的非平凡操作。有效矩形不是空的(即 isValid() == !isEmpty()
)。- left()#
- 返回类型:
整数
返回矩形左边的x坐标。等同于
x()
。返回一个通过增加
margins
扩展的矩形。另见
operator+=()
marginsRemoved()
operator-=()
从矩形中移除
margins
,从而缩小矩形。另见
marginsAdded()
operator+=()
operator-=()
- moveBottom(pos)#
- 参数:
pos – int
垂直移动矩形,使得矩形的底部边缘位于指定的
y
坐标。矩形的大小不变。移动矩形,使得矩形的左下角位于指定的
位置
。矩形的大小不变。移动矩形,使其右下角位于指定的
position
。矩形的尺寸保持不变。移动矩形,使其中心点位于指定的
position
。矩形的尺寸保持不变。另见
- moveLeft(pos)#
- 参数:
pos – int
水平移动矩形,使其左边界位于指定的
x
坐标。矩形的尺寸保持不变。- moveRight(pos)#
- 参数:
pos – int
水平移动矩形,使其右边界位于指定的
x
坐标。矩形的尺寸保持不变。移动矩形,使其左上角位于指定的
position
。- moveTo(x, t)
- 参数:
x – int
t - int
移动矩形,使其左上角位于指定的位置 (
x
,y
)。矩形的尺寸保持不变。- moveTop(pos)#
- 参数:
pos – int
将矩形垂直移动,保持矩形的顶部边沿在给定的
y
坐标处。矩形的尺寸不变。将矩形移动,保持矩形的左上角在给定的
位置
。矩形的尺寸不变。将矩形移动,保持矩形的右上角在给定的
位置
。矩形的尺寸不变。返回一个规范化矩形;即宽度为正数,高度也为正数的矩形。
如果
width()
< 0,则该函数交换左部和右部角,如果height()
< 0,则还会交换顶部和底部角。同时,角将从非包含性改变为包含性。如果矩形
r1
和r2
不同,则返回true
,否则返回false
。返回此矩形与给定
rectangle
的交集。如果没有交集,则返回一个空的矩形。另见
operator&=()
intersected()
与给定的
rectangle
交集此矩形。另见
intersected()
operator&
这是一个重载函数。
返回通过
margins
增长的rectangle
。返回通过
margins
增长的rectangle
。将
margins
添加到矩形,使其增长。另见
marginsAdded()
marginsRemoved()
operator-=()
返回由
rhs
边界缩小的lhs
矩形。返回一个由
margins
缩小的矩形。另见
marginsRemoved()
operator+=()
marginsAdded()
如果矩形
r1
和r2
相等,则返回true
,否则返回false
。返回本矩形与给定矩形
rectangle
的边框矩形。另见
operator|=()
united()
将本矩形与给定矩形
rectangle
合并。另见
united()
operator|()
- right()#
- 返回类型:
整数
返回矩形右侧边的 x 坐标。
请注意,出于历史原因,此函数返回
left()
+width()
- 1;使用x()
+width()
来检索真实 x 坐标。- setBottom(pos)#
- 参数:
pos – int
将矩形的底部边设置为给定的
y
坐标。可能会更改高度,但绝对不会更改矩形的顶部边。- setBottomLeft(
- 参数:
p –
QPoint
将矩形的左下角设置为给定的
位置
。可能会更改大小,但永远不会更改矩形的右上角。将矩形的右下角设置为给定的
位置
。可能会改变大小,但永远不会改变矩形的左上角。- setCoords(x1, y1, x2, y2)#
- 参数:
x1 – 整数
y1 – 整数
x2 – 整数
y2 – 整数
将矩形的左上角坐标设置为 (
x1
,y1
),并将其右下角坐标设置为 (x2
,y2
)。- setHeight(h)#
- 参数:
h – int
将矩形的宽度设置为给定的
高度
。改变底部边缘,但不会改变顶部边缘。- setLeft(pos)#
- 参数:
pos – int
将矩形的左边缘设置为指定的
x
坐标。可能会改变宽度,但永远不会改变矩形的右边缘。等同于
setX()
.另见
- setRect(x, y, w, h)#
- 参数:
x – int
y – int
W – int
h – int
将矩形左上角坐标设置为(
x
,y
),并将其大小设置为给定的width
和height
。- setRight(pos)#
- 参数:
pos – int
将矩形的右边界设置为给定的
x
坐标。可能会改变宽度,但永远不会改变矩形的左边界。将矩形的大小设置为给定的
size
。左上角不会移动。- setTop(pos)#
- 参数:
pos – int
将矩形的顶部设置为给定的
y
坐标。可能会改变高度,但永远不会改变矩形的底部。等同于
setY()
.将矩形左上角设置为给定的
位置
。可能会改变大小,但永远不会改变矩形的右下角。将矩形的右上角设置为给定的
位置
。可能会改变大小,但永远不会改变矩形的左下角。- setWidth(w)#
- 参数:
W – int
设置矩形的宽度为给定的
宽度
。将改变右边缘,但不改变左边缘。- setX(x)#
- 参数:
x – int
将矩形的左边缘设置为指定的
x
坐标。可能会改变宽度,但永远不会改变矩形的右边缘。等同于
setLeft()
。- setY(y)#
- 参数:
y – int
将矩形的顶部设置为给定的
y
坐标。可能会改变高度,但永远不会改变矩形的底部。等同于
setTop()
。返回矩形的尺寸。
返回两个点
p1
和p2
之间的矩形,包括这两个点和之间的所有内容。以浮点精度返回此矩形的矩形。
- top()#
- 返回类型:
整数
返回矩形上边的 y 坐标。相当于
y()
。返回矩形左上角的位置。
返回矩形右上角的位置。
注意,由于历史原因,此函数返回
QPoint
(left()
+width()
-1,top()
).这是一个重载函数。
移动矩形
offset
。在x轴上沿x()
移动offset
,在y轴上沿y()
移动offset
,相对于当前位置。- translate(dx, dy)
- 参数:
dx – int
dy – int
沿着x轴移动矩形
dx
,沿着y轴移动dy
,相对于当前位置。正值移动矩形向右和向下。这是一个重载函数。
返回一个偏移量
offset
的矩形副本。在x轴上沿x()
移动offset
,在y轴上沿y()
移动offset
,相对于当前位置。- translated(dx, dy)
- 参数:
dx – int
dy – int
- 返回类型:
返回一个沿着x轴移动
dx
,沿着y轴移动dy
的矩形副本,相对于当前位置。正值向右和向下移动矩形。另见
警告
本节包含的片段可能已从C++自动翻译到Python,可能包含错误。
返回一个宽度与高度交换的矩形副本
r = {15, 51, 42, 24} r = r.transposed() # r == {15, 51, 24, 42}
另见
返回本矩形与给定矩形
rectangle
的边框矩形。- width()#
- 返回类型:
整数
返回矩形的宽度。
- x()#
- 返回类型:
整数
返回矩形左边缘的 x 坐标。相当于
left()
.- y()#
- 返回类型:
整数
返回矩形上边缘的 y 坐标。相当于
top()
.