文档中没有很好地说明这一点,但是当我调用QBoxLayout::insertWidget时,实际发生了什么呢?它分配一个QLayoutItem,以某种方式将其与小部件关联,然后将QLayoutItem添加到布局中?为什么需要这样的间接性?我正在制作一个自定义布局,并希望能够在该布局的任何索引中插入小部件,但是我不完全了解其中的机制。
发布于 2015-08-19 21:40:11
因为布局操作布局项目,而不是小部件。QLayoutItem包含一个自己的函数列表,这些函数用于在布局中定位布局项,并适当地调整其大小/对齐。
举个简单的例子:你有一个300px宽的垂直布局。这意味着您添加的每个布局项目也将是300px宽。现在想象一下向其中添加一个50x50的小部件。由于布局有自己的几何图形、sizeHing和其他东西,您将能够正确地插入小部件( layoutItem将保持300px宽,而小部件将保持50px宽,没有任何损坏),如果您直接操作小部件,这将是困难的/不可能的。
https://stackoverflow.com/questions/32097030
复制相似问题