QLayoutItem与QWidget

时间:2015-08-19 13:33:02

标签: c++ qt

这在文档中没有明确说明,但是例如,当我调用QBoxLayout :: insertWidget时会发生什么。它分配一个QLayoutItem,以某种方式将它与小部件相关联,然后将QLayoutItem添加到布局中?为什么需要这样的间接?我正在制作一个自定义布局,并希望能够在该布局的任何索引处插入小部件,但是我并不完全了解这些机制。

1 个答案:

答案 0 :(得分:3)

因为布局操作布局项而不是窗口小部件。 QLayoutItem包含它自己的函数列表,用于在布局中定位布局,并正确调整大小/对齐它。

举一个简单的例子:你有一个300px宽的垂直布局。这意味着您添加的每个布局项目也将是300px宽。现在想象一下将50x50小部件添加到其中。由于布局具有自己的几何,sizeHing和其他东西,你将能够正确插入小部件(layoutItem将保持300px宽,小部件将保持50px宽,没有任何东西会破坏),这将如果你直接操作小部件,那就很难/不可能。