【Qt】QLayoutItem类

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
喜欢就支持一下吧
点赞764 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容