第3章讲述了一些窗口部件,当时往界面上拖放部件时都是随意放置的,这对于学习部件的使用没有太大的影响,但是,对于一个完善的软件,布局管理却是必不可少的。 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都 要进行布局管理。Qt中主要提供了 QLayout 类及其子类来作为布局管理器,它们可以实现常用的布局管理功能,QLayout及其子类的关系如图4 - 1所示。
图4-1 QLayout类关系图
4.1 布局管理系统
Qt的布局管理系统提供了简单而强大的机制来自动排列一个窗口中的部件,确保它们有效地使用空间。Qt包含了一组布局管理类来描述怎样在应用程序的用户界面中对部件进行布局,比如QLayout的几个子类,这里将它们称作布局管理器。所有 QWidget 类的子类的实例(对象)都可以使用布局管理器来管理位于其中的子部件, QWidget::setLay0ut()函数可以在一个部件上应用布局管理器。一旦一个部件上设置了布局管理器,那么它会完成以下几种任务:
- 定位子部件;
- 感知窗口默认大小;
- 感知窗口最小大小;
- 改变大小处理;
- 当内容改变时自动更新:
- 字体大小,文本或子部件的其他内容随之改变;
- 隐藏或显示子部件;
- 移除一个子部件。
4.1.1 布局管理器
11