- 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 –
QRectproper – bool
- 返回类型:
bool
这是一个重载函数。
如果给定的
rectangle在此矩形内,则返回true;否则返回false。如果proper为true,则该函数仅在矩形完全位于此矩形内时返回true(即不在边缘上)。- contains(p[, proper=false])
- 参数:
p –
QPointproper – 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().
