8.1 布局简介


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

8.1 布局简介

布局管理器

布局是一种优雅而灵活的方式,可以在其容器中自动安排子部件。 

每个小部件通过sizeHintsizePolicy属性将其大小要求报告给布局,并且该布局相应地分配可用空间。


Qt Designer是一个强大的工具,用于在布局中交互式创建和排列小部件。

好文章,来自【福优学苑@音视频+流媒体】


第7章讲述了一些窗口部件,当时往界面上拖放部件时都是随意放置的,这对于学习部件的使用没有太大的影响,但是,对于一个完善的软件,布局管理却是必不可少的。 

无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都要进行布局管理。

image.png

好文章,来自【福优学苑@音视频+流媒体】

QLayout类

QLayout类是布局管理器的基类,是一个抽象基类,继承自 QObject QLayoutItem 类,

而 QLayoutltem 类提供了 一个供 QLayout 操作的抽象项目。

好文章,来自【福优学苑@音视频+流媒体】

QLayout 和 QLayoutItem 都是在设计自己的布局管理器时才使用的,一般只需要使用 QLayout 的几个子类就可以了,

分别是:

  • QBoxLayout(基本布局管理器)

  • QGridLayout(栅格布局管理器)

  • QFormLayout(表单布局管理器)

  • QStackedLayout(栈布局管理器)


Qt提供的布局类以及他们之间的继承关系(如下图):

好文章,来自【福优学苑@音视频+流媒体】

image.png


好文章,来自【福优学苑@音视频+流媒体】

常用到的布局类有:QHBoxLayout、QVBoxLayout、QGridLayout三种,

分别是水平排列布局、垂直排列布局、表格排列布局

好文章,来自【福优学苑@音视频+流媒体】

常用的方法有addWidget()和addLayout()。

addWidget()用于在布局中插入控件,addLayout()用于在布局中插入子布局。


在布局管理中还常用到

  • setMargin()用于设定边距,

  • setSpacing()用于设定控件间距

  • setColumnStretch()用于设置列的占空比。






好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***