表格设置:
QSplitter(在图像上突出显示)包含QTreeWidget(左)和QTableWidget(右):

QSplitter 中这两个小部件的非默认属性:
QTreeWidget最小尺寸/宽度 = 150
QTableWidgetminimumSize / Width = 300
sizePolicy / Horizontal Stretch = 1
基本上,上述设置指定了这两个组件的最小宽度,即QTableWidget 在表单调整大小期间会改变其宽度的组件。
右侧的按钮被放置QVBoxLayout并且它的大小是固定的。
问题:
虽然调整 formQTreeWidget的宽度从最小 150 到未知 256,然后才QTableWidget开始增长,而我预计QTreeWidget宽度根本不会增长,因为QTableWidget它是一个将 Horizontal Stretch 设置为 1 的宽度。
请注意,这与 无关QSplitter,因为当我将这两个小部件放入时也会发生同样的情况QHBoxLayout。
更新:
将QTreeWidgetmaximumSize / Width 设置为 150(与 minimumSize / Width 相同)以避免调整此小部件的大小给出以下结果:

QTreeWidget现在固定为 150,但是当调整窗口大小时,两个小部件之间会出现空白。这个差距增长到256-150=106,然后QTableWidget开始扩大。
基本上结果是相似的,但是现在占用的这个时间区域QTreeWidget是专门针对这个空白的。
我开始觉得这可能是一个 Qt 错误。
技术信息:
- Ubuntu 10.04 (Lucid Lynx) x86_64
- GCC 4.4.3
- Qt 4.6.2