调整大小时如何在QGridLayout中排列项目



我有一个QGridLayout,我使用QGridLayout::addWidget()动态添加几个小部件。我对这些小部件没有问题,因为它们都是一样的。

但是,我想知道如何在调整包含网格布局的小部件大小时处理它们的对齐方式。例如,如果我的小部件足够宽,我可以在一行上容纳 5 个小部件:

------------------------------------------------
| -------  -------  -------  -------  -------  |
| |  1  |  |  2  |  |  3  |  |  4  |  |  5  |  |
| -------  -------  -------  -------  -------  |
|                                              | 

但是,如果我减小小部件的宽度,我希望所有小部件都可见,这意味着创建新行:

--------------------
| -------  ------- | 
| |  1  |  |  2  | | 
| -------  ------- | 
| -------  ------- | 
| |  3  |  |  4  | |
| -------  ------- | 
| -------          |
| |  5  |          |
| -------          |
|                  |

我认为这可以通过调整大小事件来完成,但是如何完成呢?

布局用于管理一组小部件的布局和大小。QGridLayout 旨在处理静态网格中的小部件,也就是说,项目在列和行中的位置不会改变无法创建该类型配置的原因。

Qt有一个很棒的文档,所以它也告诉我们如何创建自定义布局: 如何编写自定义布局管理器

上面的链接显示了一个示例,正是您想要的: 流布局示例

最新更新