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 –
QGraphicsLayoutItemisLayout – 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 –
PolicyvPolicy –
PolicycontrolType –
ControlType
这是一个重载函数。
此函数等同于调用
setSizePolicy(QSizePolicy(hPolicy,vPolicy,controlType))。另请参阅
- abstract sizeHint(which[, constraint=QSizeF()])¶
这个纯虚函数返回
QGraphicsLayoutItem的大小提示,使用constraint的宽度或高度来约束输出。在
QGraphicsLayoutItem的子类中重新实现此函数,以为您的项目提供必要的大小提示。另请参阅
- sizePolicy()¶
- Return type:
返回当前的大小策略。
- updateGeometry()¶
此虚函数会丢弃任何缓存的大小提示信息。如果您更改了
sizeHint()函数的返回值,您应始终调用此函数。子类在重新实现此函数时,必须始终调用基类的实现。另请参阅