表格设置:
QSplitter
(在图像上突出显示)包含QTreeWidget
(左)和QTableWidget
(右):
QSplitter 中这两个小部件的非默认属性:
QTreeWidget
最小尺寸/宽度 = 150
QTableWidget
minimumSize / Width = 300
sizePolicy / Horizontal Stretch = 1
基本上,上述设置指定了这两个组件的最小宽度,即QTableWidget
在表单调整大小期间会改变其宽度的组件。
右侧的按钮被放置QVBoxLayout
并且它的大小是固定的。
问题:
虽然调整 formQTreeWidget
的宽度从最小 150 到未知 256,然后才QTableWidget
开始增长,而我预计QTreeWidget
宽度根本不会增长,因为QTableWidget
它是一个将 Horizontal Stretch 设置为 1 的宽度。
请注意,这与 无关QSplitter
,因为当我将这两个小部件放入时也会发生同样的情况QHBoxLayout
。
更新:
将QTreeWidget
maximumSize / 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