QLayoutItem 类
QLayoutItem类提供了QLayout操作的一个抽象项。...
头文件 | #include <QLayoutItem> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承自 |
公共函数
QLayoutItem(Qt::Alignment alignment = Qt::Alignment()) | |
虚拟 | ~QLayoutItem() |
Qt::Alignment | alignment() const |
虚拟 QSizePolicy::ControlTypes | controlTypes() const |
虚拟 Qt::Orientations | expandingDirections() const = 0 |
虚拟 QRect | geometry() const = 0 |
虚拟 bool | hasHeightForWidth() const |
虚拟 int | heightForWidth(int) const |
虚拟 void | invalidate() |
虚拟 bool | isEmpty() const = 0 |
虚拟 QLayout * | layout() |
虚拟 QSize | maximumSize() const = 0 |
虚拟 int | minimumHeightForWidth(int w) const |
虚拟 QSize | minimumSize() const = 0 |
void | setAlignment(Qt::Alignment alignment) |
虚拟 void | setGeometry(const QRect &r) = 0 |
虚拟 QSize | sizeHint() 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,控制类型是从布局的内容推断出来的。
[纯虚函数]
Qt::Orientations QLayoutItem::expandingDirections() const
返回此布局项是否可以比sizeHint()多使用空间。如果值为Qt::Vertical或Qt::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
。此函数提供类型安全转换。
[虚拟]
QWidget *QLayoutItem::widget() const
如果此项目管理一个QWidget,则返回该 widgets。否则,返回nullptr
。
注意:虽然layout()和spacerItem()执行转换,但此函数返回另一个对象:QLayout和QSpacerItem继承了QLayoutItem,而QWidget没有。
另请参阅layout()和spacerItem。
© 2024 The Qt Company Ltd. 本文档中的贡献文档版权为其各自所有者的所有权。提供的文档是在自由软件基金会发布的GNU自由文档许可协议版本1.3的条款下许可的。Qt和相应的标志是芬兰以及/或其他国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。