- class QGraphicsLayoutItem#
继承自
QGraphicsLayoutItem
类允许您自定义项目可以由布局管理。 更多…继承自:
QGraphicsLayout
、QGraphicsLinearLayout
、QGraphicsGridLayout
、QGraphicsAnchorLayout
、QGraphicsWidget
、QGraphicsProxyWidget
、QLegend
、QChart
、QPolarChart
概要#
方法#
def
__init__()
定义
geometry()
定义
isLayout()
def
setSizePolicy()
def
sizePolicy()
虚拟方法#
def
isEmpty()
def
setGeometry()
def
sizeHint()
def
updateGeometry()
说明
本文档可能包含从C++自动转换为Python的片段。我们始终欢迎使用贡献对片段的翻译。如果您发现翻译中存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单的方式告诉我们。
详细信息#
QGraphicsLayoutItem
是一个抽象类,它定义了一组虚拟函数,用于描述任何由QGraphicsLayout
排列的对象的大小、尺寸策略和大小提示。API包含与项目本身以及项目使用者相关的函数,因为大部分QGraphicsLayoutItem
的函数也属于子类的公共API。在大多数情况下,现有的布局感知类,如
QGraphicsWidget
和QGraphicsLayout
已经提供了您所需的功能。然而,通过继承这些类,您可以创建既适合布局(QGraphicsWidget
)又适合自定义布局(《a class="reference internal" href="QGraphicsLayout.html#PySide6.QtWidgets.QGraphicsLayout" title="PySide6.QtWidgets.QGraphicsLayout">QGraphicsLayout
)的图形元素。继承 QGraphicsLayoutItem#
如果您创建 QGraphicsLayoutItem的子类 并重新实现其虚函数,您将使布局能够调整您与其他 QGraphicsLayoutItem(包括
QGraphicsWidget
和QGraphicsLayout
)一同的项的大小和位置。您可以从重新实现重要的函数开始:受保护的
sizeHint()
函数以及公开的setGeometry()
函数。如果您希望您的项能够感知即时几何变化,也可以重新实现updateGeometry()
Enjoy几何形状、大小提示和大小策略会影响项的大小和位置。调用
setGeometry()
将始终立即调整并重新定位项。通常,此函数是在布局激活后被QGraphicsLayout
调用,但也可以在任何时候由项的用户调用。函数
sizeHint()
返回项目的最小、首选和最大大小提示。您可以通过调用setMinimumSize()
、setPreferredSize()
或setMaximumSize()
来覆盖这些属性。您还可以使用诸如setMinimumWidth()
或setMaximumHeight()
的函数来仅设置所需的宽度和高度组件。另一方面,函数
effectiveSizeHint()
返回任意 Qt::SizeHint 的大小提示,并保证返回的大小指向最小、最大尺寸和大小提示。您可以通过调用setSizePolicy()
来设置项目的垂直和水平大小策略。sizePolicy
属性由布局系统用来描述如何根据大小策略生长或收缩。QGraphicsLayoutItems 的嵌套#
与可以包含子布局的布局类似,QGraphicsLayoutItems 可以嵌套在其他 QGraphicsLayoutItems 中。这可以通过将指向
QGraphicsLayoutItem
的指针传递到QGraphicsLayoutItem
的保护构造函数,或者通过调用setParentLayoutItem()
来完成。函数parentLayoutItem()
返回指向项目布局项父项的指针。如果项目的父项是None
或父项没有继承自QGraphicsItem
,则parentLayoutItem()
函数返回None
。如果QGraphicsLayoutItem
子类本身是一个布局,则isLayout()
返回true
,否则返回false
。Qt 使用
QGraphicsLayoutItem
在 Graphics View Framework 中提供布局功能,但未来其使用可能会扩展到整个 Qt。- __init__([parent=None[, isLayout=false]])#
- 参数
parent –
QGraphicsLayoutItem
isLayout – bool
构建
QGraphicsLayoutItem
对象。parent
成为此对象的父对象。如果isLayout
为 true,则该项目是布局,否则isLayout
为 false。返回本地坐标中的内容矩形。
内容矩形定义了相关布局在排列子项时使用的子矩形。此函数是一个方便的函数,它通过其内容边距调整项目的
geometry()
。请注意,getContentsMargins()
是一个虚拟函数,您可以通过重新实现它来返回项目的内容边距。- effectiveSizeHint(which[, constraint=QSizeF()])#
返回此
QGraphicsLayoutItem
的有效尺寸提示。which
是相关的尺寸提示。constraint
是一个可选参数,用于在计算有效尺寸提示时定义特殊约束。默认情况下,constraint
是 QSizeF(-1, -1),这意味着尺寸提示没有约束。如果您想为给定宽度或高度指定小部件的尺寸提示,您可以在
constraint
中提供固定维度。这对于只能垂直或水平增长的控件很有用,并且需要将其宽度或高度设置为特殊值。例如,一个文本段落项目适应200像素宽的列时可以垂直增长。您可以将 QSizeF(200, -1) 作为约束传递,以获取合适的最小、首选和最大高度。
您可以通过重新实现
sizeHint()
在QGraphicsLayoutItem
子类中,或者通过调用以下函数之一来调整有效尺寸提示:setMinimumSize()
、setPreferredSize
或setMaximumSize()
(或两者的组合)。此函数将每个尺寸提示缓存起来,并确保
sizeHint()
只会被调用一次,每个which
的值 - 除非没有指定constraint
并且调用了updateGeometry()
。另请参阅
返回小部件的几何形状(例如位置和大小)作为 QRectF 对象。这个函数等同于 QRectF(pos(), size())。
另请参阅
- getContentsMargins()#
- 返回类型
PyObject
此虚函数提供了此
QGraphicsLayoutItem
的左、上、右和下内容边距。默认实现假设所有内容边距都是0。参数指向存储在 qreals 中的值。如果任何指针是None
,则该值将不会更新。另请参阅
- graphicsItem()#
- 返回类型
返回此布局项所代表的
QGraphicsItem
。对于QGraphicsWidget
,它将返回自身。对于自定义项,它可以返回一个聚合值。另请参阅
- isEmpty()#
- 返回类型
布尔值
如果此项为空(即没有内容且不应占用任何空间),则返回
true
。默认实现返回
true
如果项已被隐藏,除非其sizePolicy
保留边距当隐藏设置为true
。另请参阅
- isLayout()#
- 返回类型
布尔值
如果此
QGraphicsLayoutItem
是布局(例如,继承自排列其他QGraphicsLayoutItem
对象的对象);否则返回false
。另请参阅
- {maximumHeight()}
- 返回类型
浮点数
返回最大高度。
另请参阅
{setMaximumHeight()} {setMaximumSize()} {maximumSize()}
- {maximumSize()}
- 返回类型
返回最大尺寸。
- maximumWidth()#
- 返回类型
浮点数
返回最大宽度。
- minimumHeight()#
- 返回类型
浮点数
返回最小高度。
返回最小尺寸。
- minimumWidth()#
- 返回类型
浮点数
返回最小宽度。
- ownedByLayout()#
- 返回类型
布尔值
返回布局在析构函数中是否应删除此项。如果是 true,则布局将删除它。如果是 false,则假定另一个对象拥有它,布局不会删除此项。
如果项继承自
QGraphicsItem
和QGraphicsLayoutItem
(如QGraphicsWidget
所做的那样),则该项实际上是两个拥有层次结构的一部分。此属性告诉在布局被析构时布局应该如何处理其子项。在QGraphicsWidget
的情况下,当布局被删除时,通常希望不删除其子项(因为它们也是图形项层次结构的一部分)。默认情况下,此值在
QGraphicsLayoutItem
中初始化为 false,但被QGraphicsLayout
覆盖为返回 true。这是因为QGraphicsLayout
通常不是QGraphicsItem
层次结构的一部分,因此父布局应该删除它。子类可以通过调用setOwnedByLayout
(true)来覆盖此默认行为。另请参阅
- parentLayoutItem()#
- 返回类型
返回此
QGraphicsLayoutItem
的父项,如果没有父项,或父项没有继承自QGraphicsLayoutItem
(QGraphicsLayoutItem
经常与从 QObject 派生的类一起多继承使用)时,则返回 None。- preferredHeight()#
- 返回类型
浮点数
返回首选高度。
返回首选大小。
- preferredWidth()#
- 返回类型
浮点数
返回首选宽度。
这个虚拟函数将
QGraphicsLayoutItem
的几何形状设置为rect
,它是在父坐标中(例如,rect
的左上角相当于项目在父坐标中的位置)。您必须在
QGraphicsLayoutItem
的子类中重新实现此函数,以接收几何更新。布局在执行重新排列时会调用此函数。如果
rect
超出了minimumSize
和maximumSize
的范围,它将调整为最接近的大小,使其在合法范围内。另请参阅
- setGraphicsItem(item)#
- 参数
item -
QGraphicsItem
如果
QGraphicsLayoutItem
表示一个QGraphicsItem
,并希望利用QGraphicsLayout
的自动重新父化功能,则应设置此值。注意,如果您删除了item
而未删除布局项,则您负责调用 setGraphicsItem(None
) 以避免出现悬挂指针。另请参阅
- setMaximumHeight(高度)#
- 参数
高度 - float
将最大高度设置为
高度
。将最大尺寸设置为
size
。该属性重写了sizeHint()
用于 Qt::MaximumSize,并确保effectiveSizeHint()
永远不会返回大于size
的大小。为了取消最大尺寸,请使用无效尺寸。- setMaximumSize(w, h)
- 参数
宽 - float
高 - float
This convenience function is equivalent to calling
setMaximumSize
(QSizeF(w
,h
)).- setMaximumWidth(width)#
- 参数
width – 浮点型
将最大宽度设置为
width
。- setMinimumHeight(height)#
- 参数
高度 - float
将最小高度设置为
height
。将最小尺寸设置为
size
。此属性重写了sizeHint()
用于 Qt::MinimumSize 并且确保effectiveSizeHint()
永远不会返回小于size
的大小。为了取消最小尺寸,请使用无效尺寸。- setMinimumSize(w, h)
- 参数
宽 - float
高 - float
这个便利函数等价于调用
setMinimumSize
(QSizeF(w
,h
)).- setMinimumWidth(width)#
- 参数
width – 浮点型
设置最小宽度为
width
.- setOwnedByLayout(ownedByLayout)#
- 参数
ownedByLayout – bool
设置是否在析构函数中删除布局项。必须为 true
ownership
,以便布局可以删除它。另请参阅
- setParentLayoutItem(parent)#
- 参数
parent –
QGraphicsLayoutItem
设置此
QGraphicsLayoutItem
的父项为parent
.另请参阅
- setPreferredHeight(height)#
- 参数
高度 - float
设置首选高度为
height
。将首选大小设置为
size
。此属性会覆盖sizeHint()
以设置Qt::PreferredSize,并为effectiveSizeHint()
提供默认值。若要取消首选大小,请使用无效大小。- setPreferredSize(w, h)
- 参数
宽 - float
高 - float
此便捷函数等价于调用
setPreferredSize
(QSizeF(w
,h
))。- setPreferredWidth(width)#
- 参数
width – 浮点型
设置首选宽度为
width
。- setSizePolicy(hPolicy, vPolicy[, controlType=QSizePolicy.DefaultType])#
- 参数
hPolicy –
Policy
vPolicy –
Policy
controlType –
ControlType
这是一个重载函数。
此函数等价于调用
setSizePolicy
(QSizePolicy
(hPolicy
,vPolicy
,controlType
))。另请参阅
- setSizePolicy(policy)
- 参数
policy –
QSizePolicy
设置大小策略为
policy
。大小策略描述了在布局排列时项目应如何水平和垂直增长。QGraphicsLayoutItem
的默认尺寸策略是 (Fixed
,Fixed
,DefaultType
),但子类通常改变默认设置。例如,QGraphicsWidget
默认设置为 (Preferred
,Preferred
,DefaultType
)。另请参阅
- abstract sizeHint(which[, constraint=QSizeF()])#
这个纯虚函数返回
which
的QGraphicsLayoutItem
尺寸提示,使用constraint
的宽度或高度来约束输出。在
QGraphicsLayoutItem
的子类中重写此函数,以为您提供项目所需的尺寸提示。另请参阅
- sizePolicy()#
- 返回类型
返回当前尺寸策略。
- updateGeometry()#
这个虚拟函数丢弃任何缓存的尺寸提示信息。如果您修改了
sizeHint()
函数的返回值,应始终调用此函数。子类在重写此函数时必须始终调用基类实现。另请参阅