00. 目录
01. 概述
对于一个完善的软件,布局管理是必不可少的。 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都要进行布局管理。Qt 提供了 QLayout 类及其子类来作为布局管理器,它们可以实现常用的布局管理功能。
QLayoutItem类提供了QLayout操纵的抽象项。
02. 公有成员方法
03. QLayoutItem详细说明
这是自定义布局使用的。
提供了纯虚函数来返回有关布局的信息,包括sizeHint(),minimumSize(),maximumSize()和expanding()。
可以使用setGeometry()和geometry()设置和检索布局的几何图形,并使用setAlignment()和alignment()对其进行对齐。
isEmpty()返回布局项是否为空。如果具体项目是QWidget,则可以使用widget()检索它。类似于layout()和spacerItem()。
一些布局具有宽度和高度相互依赖性。这些可以使用hasHeightForWidth(),heightForWidth()和minimumHeightForWidth()表示。
04. 成员方法详解
QLayoutItem::QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
构造一个带有alignment的布局项。并非所有子类都支持对齐。
[virtual] QLayoutItem::~QLayoutItem()
销毁QLayoutItem。
Qt::Alignment QLayoutItem::alignment() const
返回LayoutItem的对齐方式。
[virtual] QSizePolicy::ControlTypes QLayoutItem::controlTypes() const
返回布局项目的控件类型。对于QWidgetItem,控件类型来自于控件的大小策略;对于控件,控件类型来自控件的大小策略。
对于QLayoutItem,控件类型是从布局的内容派生的。
[pure virtual] Qt::Orientations QLayoutItem::expandingDirections() const
返回此布局项目是否可以使用比sizeHint()更多的空间。Qt::Vertical或Qt::Horizontal只有一个尺寸上增长,
而Qt::Vertical | Qt::Horizontal 表示它希望在两个维度上都增长。
[pure virtual] QRect QLayoutItem::geometry() const
返回此布局项目覆盖的矩形。
[virtual] bool QLayoutItem::hasHeightForWidth() const
如果此布局的首选高度取决于其宽度,则返回true;否则返回false。默认实现返回false。
在支持宽度的高度的布局管理器中重新实现此功能。
[virtual] 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;
}
[virtual] void QLayoutItem::invalidate()
使此布局项目中的所有缓存信息无效。
[pure virtual] bool QLayoutItem::isEmpty() const
在子类中实现,以返回此项目是否为空,即是否包含任何小部件。
[virtual] QLayout *QLayoutItem::layout()
如果该项目是QLayout,则作为QLayout返回; 否则nullptr返回。此功能提供类型安全的转换。
[pure virtual] QSize QLayoutItem::maximumSize() const
在子类中实现以返回此项目的最大大小。
[virtual] int QLayoutItem::minimumHeightForWidth(int w) const
返回此小部件在给定宽度w下所需的最小高度。默认实现只是返回heightForWidth(w)。
[pure virtual] QSize QLayoutItem::minimumSize() const
在子类中实现,以返回此项目的最小大小。
void QLayoutItem::setAlignment(Qt::Alignment alignment)
将此项目的对齐方式设置为alignment。
注意:仅QLayoutItem子类支持项目对齐,因为QLayoutItem子类具有视觉效果。除了QSpacerItem,
它为布局提供空白外,所有继承QLayoutItem的公共Qt类都支持项目对齐。
[pure virtual] void QLayoutItem::setGeometry(const QRect &r)
在子类中实现,以将此项的几何设置为r。
[pure virtual] QSize QLayoutItem::sizeHint() const
在子类中实现,以返回此项目的首选大小。
[virtual] QSpacerItem *QLayoutItem::spacerItem()
如果该项目是QSpacerItem,则作为QSpacerItem返回; 否则nullptr返回。此功能提供类型安全的转换。
[virtual] QWidget *QLayoutItem::widget()
如果此项目管理QWidget,则返回该窗口小部件。否则,nullptr返回。
05. 预留
06. 附录
6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容