class QGraphicsLayoutItem#

继承自QGraphicsLayoutItem类允许您自定义项目可以由布局管理。 更多

继承自: QGraphicsLayoutQGraphicsLinearLayoutQGraphicsGridLayoutQGraphicsAnchorLayoutQGraphicsWidgetQGraphicsProxyWidgetQLegendQChartQPolarChart

概要#

方法#

虚拟方法#

说明

本文档可能包含从C++自动转换为Python的片段。我们始终欢迎使用贡献对片段的翻译。如果您发现翻译中存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单的方式告诉我们。

详细信息#

QGraphicsLayoutItem是一个抽象类,它定义了一组虚拟函数,用于描述任何由QGraphicsLayout排列的对象的大小、尺寸策略和大小提示。API包含与项目本身以及项目使用者相关的函数,因为大部分QGraphicsLayoutItem的函数也属于子类的公共API。

在大多数情况下,现有的布局感知类,如 QGraphicsWidgetQGraphicsLayout 已经提供了您所需的功能。然而,通过继承这些类,您可以创建既适合布局(QGraphicsWidget)又适合自定义布局(《a class="reference internal" href="QGraphicsLayout.html#PySide6.QtWidgets.QGraphicsLayout" title="PySide6.QtWidgets.QGraphicsLayout">QGraphicsLayout)的图形元素。

继承 QGraphicsLayoutItem#

如果您创建 QGraphicsLayoutItem的子类 并重新实现其虚函数,您将使布局能够调整您与其他 QGraphicsLayoutItem(包括 QGraphicsWidgetQGraphicsLayout)一同的项的大小和位置。

您可以从重新实现重要的函数开始:受保护的 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 使用 QGraphicsLayoutItemGraphics View Framework 中提供布局功能,但未来其使用可能会扩展到整个 Qt。

__init__([parent=None[, isLayout=false]])#
参数

构建 QGraphicsLayoutItem 对象。 parent 成为此对象的父对象。如果 isLayout 为 true,则该项目是布局,否则 isLayout 为 false。

contentsRect()#
返回类型

QRectF

返回本地坐标中的内容矩形。

内容矩形定义了相关布局在排列子项时使用的子矩形。此函数是一个方便的函数,它通过其内容边距调整项目的 geometry()。请注意,getContentsMargins() 是一个虚拟函数,您可以通过重新实现它来返回项目的内容边距。

effectiveSizeHint(which[, constraint=QSizeF()])#
参数
返回类型

QSizeF

返回此 QGraphicsLayoutItem 的有效尺寸提示。

which 是相关的尺寸提示。 constraint 是一个可选参数,用于在计算有效尺寸提示时定义特殊约束。默认情况下,constraint 是 QSizeF(-1, -1),这意味着尺寸提示没有约束。

如果您想为给定宽度或高度指定小部件的尺寸提示,您可以在 constraint 中提供固定维度。这对于只能垂直或水平增长的控件很有用,并且需要将其宽度或高度设置为特殊值。

例如,一个文本段落项目适应200像素宽的列时可以垂直增长。您可以将 QSizeF(200, -1) 作为约束传递,以获取合适的最小、首选和最大高度。

您可以通过重新实现 sizeHint()QGraphicsLayoutItem 子类中,或者通过调用以下函数之一来调整有效尺寸提示: setMinimumSize()setPreferredSizesetMaximumSize()(或两者的组合)。

此函数将每个尺寸提示缓存起来,并确保 sizeHint() 只会被调用一次,每个 which 的值 - 除非没有指定 constraint 并且调用了 updateGeometry()

另请参阅

sizeHint()

geometry()#
返回类型

QRectF

返回小部件的几何形状(例如位置和大小)作为 QRectF 对象。这个函数等同于 QRectF(pos(), size())。

另请参阅

setGeometry()

getContentsMargins()#
返回类型

PyObject

此虚函数提供了此 QGraphicsLayoutItem 的左、上、右和下内容边距。默认实现假设所有内容边距都是0。参数指向存储在 qreals 中的值。如果任何指针是 None,则该值将不会更新。

另请参阅

setContentsMargins()

graphicsItem()#
返回类型

QGraphicsItem

返回此布局项所代表的 QGraphicsItem。对于 QGraphicsWidget,它将返回自身。对于自定义项,它可以返回一个聚合值。

另请参阅

setGraphicsItem()

isEmpty()#
返回类型

布尔值

如果此项为空(即没有内容且不应占用任何空间),则返回 true

默认实现返回 true 如果项已被隐藏,除非其 sizePolicy 保留边距当隐藏设置为 true

另请参阅

{sizePolicy()}

isLayout()#
返回类型

布尔值

如果此 QGraphicsLayoutItem 是布局(例如,继承自排列其他 QGraphicsLayoutItem 对象的对象);否则返回 false

另请参阅

QGraphicsLayout

{maximumHeight()}
返回类型

浮点数

返回最大高度。

另请参阅

{setMaximumHeight()} {setMaximumSize()} {maximumSize()}

{maximumSize()}
返回类型

QSizeF

返回最大尺寸。

maximumWidth()#
返回类型

浮点数

返回最大宽度。

minimumHeight()#
返回类型

浮点数

返回最小高度。

minimumSize()#
返回类型

QSizeF

返回最小尺寸。

minimumWidth()#
返回类型

浮点数

返回最小宽度。

ownedByLayout()#
返回类型

布尔值

返回布局在析构函数中是否应删除此项。如果是 true,则布局将删除它。如果是 false,则假定另一个对象拥有它,布局不会删除此项。

如果项继承自 QGraphicsItemQGraphicsLayoutItem(如 QGraphicsWidget 所做的那样),则该项实际上是两个拥有层次结构的一部分。此属性告诉在布局被析构时布局应该如何处理其子项。在 QGraphicsWidget 的情况下,当布局被删除时,通常希望不删除其子项(因为它们也是图形项层次结构的一部分)。

默认情况下,此值在 QGraphicsLayoutItem 中初始化为 false,但被 QGraphicsLayout 覆盖为返回 true。这是因为 QGraphicsLayout 通常不是 QGraphicsItem 层次结构的一部分,因此父布局应该删除它。子类可以通过调用 setOwnedByLayout(true)来覆盖此默认行为。

另请参阅

setOwnedByLayout()

parentLayoutItem()#
返回类型

QGraphicsLayoutItem

返回此 QGraphicsLayoutItem 的父项,如果没有父项,或父项没有继承自 QGraphicsLayoutItemQGraphicsLayoutItem 经常与从 QObject 派生的类一起多继承使用)时,则返回 None。

另请参阅

setParentLayoutItem()

preferredHeight()#
返回类型

浮点数

返回首选高度。

preferredSize()#
返回类型

QSizeF

返回首选大小。

preferredWidth()#
返回类型

浮点数

返回首选宽度。

setGeometry(rect)#
参数

rect - QRectF

这个虚拟函数将 QGraphicsLayoutItem 的几何形状设置为 rect,它是在父坐标中(例如,rect 的左上角相当于项目在父坐标中的位置)。

您必须在 QGraphicsLayoutItem 的子类中重新实现此函数,以接收几何更新。布局在执行重新排列时会调用此函数。

如果 rect 超出了 minimumSizemaximumSize 的范围,它将调整为最接近的大小,使其在合法范围内。

另请参阅

geometry()

setGraphicsItem(item)#
参数

item - QGraphicsItem

如果 QGraphicsLayoutItem 表示一个 QGraphicsItem ,并希望利用 QGraphicsLayout 的自动重新父化功能,则应设置此值。注意,如果您删除了 item 而未删除布局项,则您负责调用 setGraphicsItem(None) 以避免出现悬挂指针。

另请参阅

graphicsItem()

setMaximumHeight(高度)#
参数

高度 - float

将最大高度设置为 高度

setMaximumSize(size)#
参数

size - QSizeF

将最大尺寸设置为 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

setMinimumSize(size)#
参数

size - QSizeF

将最小尺寸设置为 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,以便布局可以删除它。

另请参阅

ownedByLayout()

setParentLayoutItem(parent)#
参数

parentQGraphicsLayoutItem

设置此 QGraphicsLayoutItem 的父项为 parent.

另请参阅

parentLayoutItem()

setPreferredHeight(height)#
参数

高度 - float

设置首选高度为height

setPreferredSize(size)#
参数

size - QSizeF

将首选大小设置为size。此属性会覆盖sizeHint()以设置Qt::PreferredSize,并为effectiveSizeHint()提供默认值。若要取消首选大小,请使用无效大小。

setPreferredSize(w, h)
参数
  • - float

  • - float

此便捷函数等价于调用setPreferredSize (QSizeF(w, h))。

setPreferredWidth(width)#
参数

width – 浮点型

设置首选宽度为width

setSizePolicy(hPolicy, vPolicy[, controlType=QSizePolicy.DefaultType])#
参数

这是一个重载函数。

此函数等价于调用setSizePolicy (QSizePolicy(hPolicy, vPolicy, controlType))。

另请参阅

sizePolicy() sizePolicy()

setSizePolicy(policy)
参数

policyQSizePolicy

设置大小策略为 policy。大小策略描述了在布局排列时项目应如何水平和垂直增长。

QGraphicsLayoutItem 的默认尺寸策略是 ( Fixed , Fixed , DefaultType ),但子类通常改变默认设置。例如,QGraphicsWidget 默认设置为 ( Preferred , Preferred , DefaultType )。

另请参阅

sizePolicy() sizePolicy()

abstract sizeHint(which[, constraint=QSizeF()])#
参数
返回类型

QSizeF

这个纯虚函数返回 whichQGraphicsLayoutItem 尺寸提示,使用 constraint 的宽度或高度来约束输出。

QGraphicsLayoutItem 的子类中重写此函数,以为您提供项目所需的尺寸提示。

另请参阅

effectiveSizeHint()

sizePolicy()#
返回类型

QSizePolicy

返回当前尺寸策略。

updateGeometry()#

这个虚拟函数丢弃任何缓存的尺寸提示信息。如果您修改了 sizeHint() 函数的返回值,应始终调用此函数。子类在重写此函数时必须始终调用基类实现。

另请参阅

effectiveSizeHint()