PySide6.QtWidgets.QGraphicsLayoutItem¶
- class QGraphicsLayoutItem¶
QGraphicsLayoutItem
类可以被继承,以允许您的自定义项由布局管理。更多…继承者:
QGraphicsLayout
,QGraphicsLinearLayout
,QGraphicsGridLayout
,QGraphicsAnchorLayout
,QGraphicsWidget
,QGraphicsProxyWidget
,QLegend
,QChart
,QPolarChart
概要¶
方法¶
def
__init__()
def
contentsRect()
def
geometry()
def
graphicsItem()
def
isLayout()
def
maximumHeight()
def
maximumSize()
def
maximumWidth()
def
minimumHeight()
def
minimumSize()
def
minimumWidth()
def
ownedByLayout()
def
preferredSize()
def
preferredWidth()
def
setMaximumSize()
def
setMinimumSize()
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
)或自定义布局(QGraphicsLayout
)。子类化 QGraphicsLayoutItem¶
如果你创建了一个
QGraphicsLayoutItem
的子类并重新实现了它的虚函数,你将使布局能够调整大小并定位你的项目,包括QGraphicsWidget
和QGraphicsLayout
在内的其他QGraphicsLayoutItems。你可以从重新实现重要的函数开始:受保护的
sizeHint()
函数,以及公共的setGeometry()
函数。如果你希望你的项目能够立即感知到几何变化,你也可以重新实现updateGeometry()
。几何形状、大小提示和大小策略会影响项目的大小和位置。调用
setGeometry()
将始终立即调整项目的大小和位置。通常,此函数在布局激活后由QGraphicsLayout
调用,但项目的用户也可以随时调用它。sizeHint()
函数返回项目的最小、首选和最大尺寸提示。您可以通过调用setMinimumSize()
、setPreferredSize()
或setMaximumSize()
来覆盖这些属性。您还可以使用诸如setMinimumWidth()
或setMaximumHeight()
等函数来仅设置宽度或高度组件(如果需要)。另一方面,
effectiveSizeHint()
函数返回任何给定 Qt::SizeHint 的大小提示,并保证返回的大小受最小和最大大小及大小提示的限制。您可以通过调用setSizePolicy()
来设置项目的垂直和水平大小策略。sizePolicy
属性由布局系统使用,用于描述该项目如何倾向于增长或缩小。嵌套 QGraphicsLayoutItems¶
QGraphicsLayoutItems 可以嵌套在其他 QGraphicsLayoutItems 中,类似于可以包含子布局的布局。这可以通过将
QGraphicsLayoutItem
指针传递给QGraphicsLayoutItem
的保护构造函数,或者通过调用setParentLayoutItem()
来实现。parentLayoutItem()
函数返回指向项目布局项父级的指针。如果项目的父级是None
或者父级不继承自QGraphicsItem
,则parentLayoutItem()
函数返回None
。isLayout()
如果QGraphicsLayoutItem
子类本身是一个布局,则返回true
,否则返回 false。Qt 使用
QGraphicsLayoutItem
在 Graphics View Framework 中提供布局功能,但未来其使用可能会扩展到整个 Qt 本身。- __init__([parent=None[, isLayout=false]])¶
- Parameters:
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)作为约束来获得合适的最小、首选和最大高度。
您可以通过在
QGraphicsLayoutItem
子类中重新实现sizeHint()
,或者通过调用以下函数之一来调整有效大小提示:setMinimumSize()
、setPreferredSize
或setMaximumSize()
(或两者的组合)。此函数缓存每个大小提示,并保证对于每个
which
的值,sizeHint()
只会被调用一次 - 除非未指定constraint
并且已经调用了updateGeometry()
。另请参阅
返回项目的几何形状(例如,位置和大小)作为QRectF。此函数等同于QRectF(pos(), size())。
另请参阅
- getContentsMargins()¶
- Return type:
PyObject
此虚拟函数为此
QGraphicsLayoutItem
提供left
、top
、right
和bottom
内容边距。默认实现假设所有内容边距均为0。参数指向存储在qreals中的值。如果任何指针为None
,则该值将不会更新。另请参阅
- graphicsItem()¶
- Return type:
返回此布局项所表示的
QGraphicsItem
。对于QGraphicsWidget
,它将返回自身。对于自定义项,它可以返回一个聚合值。另请参阅
- isEmpty()¶
- Return type:
布尔
如果此项为空,即没有内容且不应占用任何空间,则返回
true
。默认实现返回
true
如果项目已被隐藏,除非其size policy
的retainSizeWhenHidden设置为true
另请参阅
- isLayout()¶
- Return type:
布尔
如果这个
QGraphicsLayoutItem
是一个布局(例如,被一个安排其他QGraphicsLayoutItem
对象的对象继承),则返回true
;否则返回false
。另请参阅
- maximumHeight()¶
- Return type:
浮点数
返回最大高度。
返回最大尺寸。
- maximumWidth()¶
- Return type:
浮点数
返回最大宽度。
- minimumHeight()¶
- Return type:
浮点数
返回最小高度。
返回最小尺寸。
- minimumWidth()¶
- Return type:
浮点数
返回最小宽度。
- ownedByLayout()¶
- Return type:
布尔
返回布局是否应在其析构函数中删除此项。如果为真,则布局将删除它。如果为假,则假定另一个对象拥有它,布局不会删除此项。
如果项目同时继承
QGraphicsItem
和QGraphicsLayoutItem
(例如QGraphicsWidget
),那么该项目实际上属于两个所有权层次结构。此属性指示布局在销毁时应如何处理其子项目。对于QGraphicsWidget
,建议在删除布局时不要删除其子项目(因为它们也是图形项目层次结构的一部分)。默认情况下,这个值在
QGraphicsLayoutItem
中被初始化为false,但被QGraphicsLayout
覆盖以返回true。这是因为QGraphicsLayout
通常不是QGraphicsItem
层次结构的一部分,所以父布局应该删除它。子类可以通过调用setOwnedByLayout
(true)来覆盖这个默认行为。另请参阅
- parentLayoutItem()¶
- Return type:
返回此
QGraphicsLayoutItem
的父级,如果没有父级,或者父级不继承自QGraphicsLayoutItem
,则返回None
(QGraphicsLayoutItem
通常通过多重继承与QObject派生的类一起使用)。- preferredHeight()¶
- Return type:
浮点数
返回首选高度。
返回首选大小。
- preferredWidth()¶
- Return type:
浮点数
返回首选宽度。
此虚函数将
QGraphicsLayoutItem
的几何形状设置为rect
,该矩形位于父坐标系中(例如,rect
的左上角等同于项目在父坐标系中的位置)。你必须在
QGraphicsLayoutItem
的子类中重新实现此函数以接收几何更新。布局在进行重新排列时将调用此函数。如果
rect
超出了minimumSize
和maximumSize
的范围,它将被调整到最接近的尺寸,以便在合法范围内。另请参阅
- setGraphicsItem(item)¶
- Parameters:
项目 –
QGraphicsItem
如果
QGraphicsLayoutItem
代表一个QGraphicsItem
,并且它希望利用QGraphicsLayout
的自动重新父级功能,它应该设置这个值。请注意,如果你删除了item
而没有删除布局项,你有责任调用 setGraphicsItem(None
) 以避免出现悬空指针。另请参阅
- setMaximumHeight(height)¶
- Parameters:
height – 浮点数
设置最大高度为
height
。设置最大尺寸为
size
。此属性会覆盖sizeHint()
的Qt::MaximumSize,并确保effectiveSizeHint()
永远不会返回大于size
的尺寸。要取消设置最大尺寸,请使用无效尺寸。- setMaximumSize(w, h)
- Parameters:
w – 浮点数
h – 浮点数
这个便捷函数等同于调用
setMaximumSize
(QSizeF(w
,h
))。- setMaximumWidth(width)¶
- Parameters:
width – 浮点数
设置最大宽度为
width
。- setMinimumHeight(height)¶
- Parameters:
height – 浮点数
设置最小高度为
height
。设置最小尺寸为
size
。此属性会覆盖sizeHint()
对于Qt::MinimumSize的设置,并确保effectiveSizeHint()
永远不会返回小于size
的尺寸。要取消最小尺寸的设置,请使用无效尺寸。- setMinimumSize(w, h)
- Parameters:
w – 浮点数
h – 浮点数
这个便捷函数等同于调用
setMinimumSize
(QSizeF(w
,h
))。- setMinimumWidth(width)¶
- Parameters:
width – 浮点数
设置最小宽度为
width
。- setOwnedByLayout(ownedByLayout)¶
- Parameters:
ownedByLayout – 布尔值
设置布局是否应在其析构函数中删除此项。
ownership
必须为true,以便布局删除它。另请参阅
- setParentLayoutItem(parent)¶
- Parameters:
父级 –
QGraphicsLayoutItem
将此
QGraphicsLayoutItem
的父级设置为parent
。另请参阅
- setPreferredHeight(height)¶
- Parameters:
height – 浮点数
将首选高度设置为
height
。将首选大小设置为
size
。此属性会覆盖sizeHint()
对于Qt::PreferredSize的设置,并为effectiveSizeHint()
提供默认值。要取消设置首选大小,请使用无效的大小。- setPreferredSize(w, h)
- Parameters:
w – 浮点数
h – 浮点数
这个便捷函数等同于调用
setPreferredSize
(QSizeF(w
,h
))。- setPreferredWidth(width)¶
- Parameters:
width – 浮点数
将首选宽度设置为
width
。- setSizePolicy(policy)¶
- Parameters:
策略 –
QSizePolicy
设置大小策略为
policy
。大小策略描述了当项目在布局中排列时,应如何水平和垂直增长。QGraphicsLayoutItem
的默认大小策略是 (Fixed
,Fixed
,DefaultType
),但子类通常会更改默认值。例如,QGraphicsWidget
默认为 (Preferred
,Preferred
,DefaultType
)。另请参阅
- setSizePolicy(hPolicy, vPolicy[, controlType=QSizePolicy.DefaultType])
- Parameters:
hPolicy –
Policy
vPolicy –
Policy
controlType –
ControlType
这是一个重载函数。
此函数等同于调用
setSizePolicy
(QSizePolicy
(hPolicy
,vPolicy
,controlType
))。另请参阅
- abstract sizeHint(which[, constraint=QSizeF()])¶
这个纯虚函数返回
QGraphicsLayoutItem
的大小提示,使用constraint
的宽度或高度来约束输出。在
QGraphicsLayoutItem
的子类中重新实现此函数,以为您的项目提供必要的大小提示。另请参阅
- sizePolicy()¶
- Return type:
返回当前的大小策略。
- updateGeometry()¶
此虚函数会丢弃任何缓存的大小提示信息。如果您更改了
sizeHint()
函数的返回值,您应始终调用此函数。子类在重新实现此函数时,必须始终调用基类的实现。另请参阅