00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 公有成员方法
  • 03. QLayoutItem详细说明
  • 04. 成员方法详解
  • 05. 预留
  • 06. 附录

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

【Qt】QLayoutItem类相关推荐

  1. Qt学习之路(1)------Qt常用类用法说明

    Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream>int main() {std::cout << ...

  2. Qt 串口类QSerialPort 使用笔记

    Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...

  3. 详解 QT 主要类 QWidget

    QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...

  4. Qt4_在次线程中使用Qt的类

    在次线程中使用Qt的类 当函数可以同时被不同的线程安全地调用时,就称其为"线程安全的"(thread-safe).如果在不同的线程中对某一共享数据同时调用两个线程安全的函数,那么结 ...

  5. QT QVariant类数据类型使用

    QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...

  6. 0004:Qt常用类 - QTime

    Qt常用类 - QTime 1 开发环境 在介绍内容之前,先说明一下开发环境,如下图: Qt版本:Qt5.3.2: Qt开发工具:Qt Creater 3.2.1: Qt构建工具:Desktop Qt ...

  7. Qt自定义类之自由移动的mainwindow

    先要清楚,只是拖动mainwindow你是拖不动那个界面的,但是又想要设计漂亮的无标题栏的控件时,那就需要加自己的重写函数了 一开始我被这个东西给吓到了,因为在网上看了很多人的文章,但是发现我找不到他 ...

  8. Qt 常用类——QStandardItemModel

    转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构 ...

  9. Qt添加类文件编译后,再添加宏Q_OBJECT

    问题简述 创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏Q_OBJECT,后面项目需要,又加入了宏Q_OBJECT,但是发现只是添加了一个宏Q_OBJECT,除此之外没有改动其它 ...

最新文章

  1. MCP3202的使用
  2. 清理Oracle安装目录里的一些日志信息
  3. 用Python获取Linux资源信息的三种方法
  4. python绘制蝴蝶曲线_如何编程实现蝴蝶函数曲线
  5. PYTHON 高效编程
  6. Django 模板语言 标签
  7. [vue] vue实例挂载的过程是什么?
  8. 华为手机连电脑_手机、电脑无网高速互传!华为神技逆天
  9. 80后阿里P10,“关老板”如何带着MaxCompute一路升级?
  10. 邓迎春绘画201702作品5
  11. beetle 2.7海量消息广播测试
  12. 【Oracle学习笔记】索引
  13. 一键修改QQ运动刷步助手 V3.0
  14. BZOJ 5336: [TJOI2018]party Dp套Dp
  15. 554_使用iotop查看存储的读写速度
  16. Spring+百度Api实现人脸认证对比(详细篇)
  17. 一文读懂开源项目 OpenHarmony2.0 开源项目 OpenHarmony 是什么
  18. 认识TIA博途Portal软件平台
  19. 消息称勒索软件可逃避PC防御、Office漏洞补丁能被攻击者绕过|12月24日全球网络安全热点
  20. vue+elementui实现非常好看的博客、网站首页,网站模板

热门文章

  1. 每一对顶点之间的最短路径
  2. 16个经典面试问题回答规律
  3. oracle 10G windows启动与关闭另类方法
  4. 如何安装php网站,如何安装部署PHP网站
  5. python批量处理txt_浅谈Python批处理文件夹中的txt文件
  6. java怎么判断类相同_java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用“===”是什么意思...
  7. 七种方式求斐波那契(Fibonacci)数列通项
  8. php模拟post提交请求与调用接口
  9. 从入门到放弃,.net构建博客系统(二):依赖注入
  10. 深入了解UIAutomation 的API