22-布局管理器(一)

1. 绝对定位存在的问题

  • 使用绝对定位存在的问题:

    • 效率低下
    • 组件的位置和大小无法自适应父窗口的变化
  • 解决方案:布局管理器,提供相关的类对界面组件进行布局管理

    • 能够自动排列窗口中的界面组件
    • 窗口变化后自动更新界面组件的大小
  • 布局管理器继承关系

在这里插入图片描述

  • QLayout 是 QT 中布局管理器的抽象基类

  • 通过继承 QLayout 实现了功能各异且互补的布局管理器

  • QT 中可以根据需求自定义布局管理器

  • 布局管理器不是界面组件,而是界面组件的定位策略

2. QBoxLayout布局管理器

2.1 QBoxLayout

  • 以水平或者垂直的方式管理界面软件

在这里插入图片描述

2.2 QHBoxLayout

  • 继承于 QBoxLayout,用于水平布局管理

在这里插入图片描述

2.3 QVBoxLayout

  • 继承于 QBoxLayout,用于垂直布局管理

在这里插入图片描述

2.4 嵌套布局

  • 布局管理器可以相互嵌套,形成更加复杂的布局方式

    • 布局嵌套几乎可以完成所有常用的界面布局
    • 自定义布局类可以达到个性化界面布局的效果

在这里插入图片描述

3. 总结

  • 绝对定位的布局方式无法自适应窗口的变化
  • QT 提供了相关的类对界面组件进行布局管理
  • QT 预定义了功能各异且互补的布局管理器
  • 布局管理器能够相互嵌套形成复杂的布局
发布了61 篇原创文章 · 获赞 31 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/105640283