QLayoutItem 类

QLayoutItem类提供了QLayout操作的一个抽象项。...

头文件 #include <QLayoutItem>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自

QLayoutQSpacerItemQWidgetItem

公共函数

QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
虚拟~QLayoutItem()
Qt::Alignmentalignment() const
虚拟 QSizePolicy::ControlTypescontrolTypes() const
虚拟 Qt::OrientationsexpandingDirections() const = 0
虚拟 QRectgeometry() const = 0
虚拟 boolhasHeightForWidth() const
虚拟 intheightForWidth(int) const
虚拟 voidinvalidate()
虚拟 boolisEmpty() const = 0
虚拟 QLayout *layout()
虚拟 QSizemaximumSize() const = 0
虚拟 intminimumHeightForWidth(int w) const
虚拟 QSizeminimumSize() const = 0
voidsetAlignment(Qt::Alignment alignment)
虚拟 voidsetGeometry(const QRect &r) = 0
虚拟 QSizesizeHint() const = 0
虚拟 QSpacerItem *spacerItem()
虚拟 QWidget *widget() const

详细描述

此功能用于自定义布局。

提供了纯虚拟函数以返回有关布局的信息,包括sizeHint()、minimumSize()、maximumSize()和expandingDirections()。

布局的几何形状可以通过setGeometry()和geometry()设置和检索,对其对齐方式可以通过setAlignment()和alignment()设置。

isEmpty()函数返回布局项是否为空。如果具体项是一个QWidget,可以使用widget()获取。类似地,对于layout()和spacerItem()。

一些布局具有宽度和高度的互依关系。可以使用hasHeightForWidth()、heightForWidth()和minimumHeightForWidth()来表达。更多解释请参阅Qt Quarterly文章Trading Height for Width

另请参阅QLayout

成员函数文档

[显式] QLayoutItem::QLayoutItem(Qt::Alignment alignment = Qt::Alignment())

使用一个alignment构造布局项。并不是所有子类都支持对齐。

[虚函数 non battled/>\ QLayoutItem::~QLayoutItem()

销毁QLayoutItem

Qt::Alignment QLayoutItem::alignment() const

返回此项目的对齐方式。

另请参阅setAlignment

[虚函数] QSizePolicy::ControlTypes QLayoutItem::controlTypes() const

返回布局项的控制类型。对于QWidgetItem,控制类型来自小部件的大小策略;对于QLayoutItem,控制类型是从布局的内容推断出来的。

另请参阅QSizePolicy::controlType

[纯虚函数] Qt::Orientations QLayoutItem::expandingDirections() const

返回此布局项是否可以比sizeHint()多使用空间。如果值为Qt::VerticalQt::Horizontal,则表示它只想在一个维度上增长,而值为Qt::Vertical | Qt::Horizontal表示它想同时在两个维度上增长。

[纯虚函数] QRect QLayoutItem::geometry() const

返回此布局项覆盖的矩形。

另请参阅setGeometry

[虚函数] bool QLayoutItem::hasHeightForWidth() const

如果此布局的首选高度取决于其宽度,则返回true;否则返回false。默认实现返回false。

在支持“高度与宽度交换”的布局管理器中重新实现此函数。

另请参阅heightForWidth()和QWidget::heightForWidth

[虚函数] int QLayoutItem::heightForWidth(int) const

给定宽度返回此布局项的首选高度,这里不使用宽度。

默认实现返回 -1,表示首选高度与项目宽度无关。使用函数 hasHeightForWidth() 通常会比调用此函数并测试 -1 快得多。

在支持高度为宽度的布局管理器中重新实现此函数。典型的实现如下所示

int MyLayout::heightForWidth(int w) const
{
    if (cache_dirty || cached_width != w) {
        MyLayout *that = const_cast<MyLayout *>(this);
        int h = calculateHeightForWidth(w);
        that->cached_hfw = h;
        return h;
    }
    return cached_hfw;
}

强烈建议使用缓存;没有它,布局将需要指数级的时间。

另请参阅:hasHeightForWidth()。

[虚函数] void QLayoutItem::invalidate()

使此布局项中的任何缓存的有关信息无效。

[纯虚函数] bool QLayoutItem::isEmpty() const

在子类中实现,返回此项是否为空,即是否包含任何小部件。

[虚函数] QLayout *QLayoutItem::layout()

如果此项目是 QLayout,则将其作为 QLayout 返回;否则返回 nullptr。此函数提供类型安全的转换。

另请参阅:spacerItem() 和 widget()。

[纯虚函数] QSize QLayoutItem::maximumSize() const

在子类中实现,返回此项目的最大尺寸。

[虚函数] int QLayoutItem::minimumHeightForWidth(int w) const

返回给定宽度 w 此小部件所需的最小高度。默认实现简单地返回 heightForWidth(w)。

[纯虚函数] QSize QLayoutItem::minimumSize() const

在子类中实现,返回此项目的最小尺寸。

void QLayoutItem::setAlignment(Qt::Alignment alignment)

将此项目的对齐方式设置为 alignment

注意: 只有在子类 QLayoutItem 中时,项目对齐才会具有视觉影响。除了提供布局空白空间的 QSpacerItem 之外,所有从 QLayoutItem 继承的公共 Qt 类都支持项目对齐。

另请参阅:alignment()。

[纯虚函数] void QLayoutItem::setGeometry(const QRect &r)

在子类中实现,将此项目的几何形状设置为 r

另请参阅:geometry()。

[纯虚函数] QSize QLayoutItem::sizeHint() const

在子类中实现,返回此项目的首选尺寸。

[虚拟] QSpacerItem *QLayoutItem::spacerItem()

如果此项目是QSpacerItem,则将其作为QSpacerItem返回;否则返回nullptr。此函数提供类型安全转换。

另请参阅layout()和widget()。

[虚拟] QWidget *QLayoutItem::widget() const

如果此项目管理一个QWidget,则返回该 widgets。否则,返回nullptr

注意:虽然layout()和spacerItem()执行转换,但此函数返回另一个对象:QLayoutQSpacerItem继承了QLayoutItem,而QWidget没有。

另请参阅layout()和spacerItem

© 2024 The Qt Company Ltd. 本文档中的贡献文档版权为其各自所有者的所有权。提供的文档是在自由软件基金会发布的GNU自由文档许可协议版本1.3的条款下许可的。Qt和相应的标志是芬兰以及/或其他国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。