【发布时间】:2012-11-23 18:05:56
【问题描述】:
我想要一个使用QHBoxLayout 的QWidget 实例,并且(理想情况下是自动的,但在调用某些函数时也可以)水平调整大小以适应其内容。水平调整大小就足够了,因为包括容器本身在内的所有小部件都将具有相同的高度。
用例如下:小部件,我们称之为容器,是浮动的,即不属于任何布局。用户应该能够向容器的布局添加更多具有固定大小的小部件(通过调用函数),容器会在此基础上增长以适应其新内容。用户还应该能够删除先前添加的小部件,容器再次缩小。在插入第一个小部件之前,不会创建容器,并在删除最后一个小部件时将其删除,即它始终包含至少一个小部件。
一个例子:添加第一个小部件后,容器看起来像这样,| 是它的左/右边界:
|<1st widget>|
再添加一个之后是这样的:
|<1st widget> <2nd, longer widget>|
删除第一个小部件后,它看起来像这样:
|<2nd, longer widget>|
我怀疑这应该有点简单,但我在容器的sizeHint、sizePolicy、adjustSize() 及其布局的sizeContraint 之间迷路了,并且多次尝试明确设置大小和强制更新并且基本上一无所获(即容器根本没有调整大小,容器只会增长但不会缩小等)。我怀疑我一定错过了一些明显的东西..?
【问题讨论】: