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

时间:2017-10-23 12:05:18

标签: c++ qt qt5 qgridlayout

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

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

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

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

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

我认为可以通过resize事件来完成,但是怎么做?

1 个答案:

答案 0 :(得分:1)

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

Qt有很好的文档,因此它还告诉我们如何创建自定义布局:How to Write A Custom Layout Manager

以上链接显示的是您想要的示例:Flow Layout Example