简述
手动布局另一种方法是通过继承QLayout类编写自己的布局管理器。
下面我们详细来举一个例子-QCardLayout。它由同名的Java布局管理器启发而来。也被称之为卡片布局,每个项目偏移QLayout::spacing()。
定义
编写自己的布局,必须定义如下:
- 一种存储布局处理项目的数据结构,每个项目都是一个QLayoutItem,本例使用QList。
- addItem() 如何添加项目布局。
- setGeometry() 如何控制布局。
- sizeHint() 布局的优选大小。
- itemAt() 如何遍历布局。
- takeAt() 如何删除布局中的项目。
大多数情况下,也会实现的minimumSize()。
实现
效果
源码
QCardLayoud.h
QCardLayoud.cpp