Qt QLayoutItem

1. 概述

对于一个完善的软件,布局管理是必不可少的。 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都要进行布局管理。Qt 提供了 QLayout 类及其子类来作为布局管理器,它们可以实现常用的布局管理功能。

QLayoutItem类提供了QLayout操纵的抽象项。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

2. 公有成员方法

 

3. QLayoutItem详细说明

这是自定义布局使用的。

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

可以使用 setGeometry()和 geometry()设置和检索布局的几何图形,并使用 setAlignment()和 alignment()对其进行对齐。

 isEmpty()返回布局项是否为空。如果具体项目是 QWidget,则可以使用 widget()检索它。类似于 layout()和 spacerItem()。

一些布局具有宽度和高度相互依赖性。这些可以使用 hasHeightForWidth(), heightForWidth()和 minimumHeightForWidth()表示。

4. 成员方法详解

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返回。
    
       

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值