我有一个QDialog
,其中包含网格布局。网格宽5列,行数可变。 QDialog
以预建的UI开头,在5列中的每一列中都有一个标签。网格的其余部分构建如下。对于添加的每一行:
完成后,第0列是最宽的列。列1-4的宽度相同。一些组合框项目(第1-3栏)太宽,无法看到并显示为" ..."。复选框列(4)比它需要的宽。我已经尝试在每个该死的小部件上使用QWidget::adjustSize()
,包括对话框本身,我无法将其设置为适合所有内容的自动调整大小。在尝试调试时,我打印了每个列的小部件宽度,但我看到的值与我在屏幕上看不到的一样。我的印象是,网格布局会自动调整每列中的每个小部件,使其足够宽,以适应最宽的项目,但它似乎并没有这样做。是否有某种setAutoColumnWidth
属性或什么?
答案 0 :(得分:1)
如果要为布局列设置宽度,可以为布局中的窗口小部件设置拉伸值。例如,将所有小部件的水平延伸设置为1
以获得相等的宽度:
lineEdit->sizePolicy().setHorizontalStretch(1);
comboBox1->sizePolicy().setHorizontalStretch(1);
comboBox2->sizePolicy().setHorizontalStretch(1);
comboBox3->sizePolicy().setHorizontalStretch(1);
checkBox->sizePolicy().setHorizontalStretch(1);
如果您希望特定列更宽,请为该列中的窗口小部件设置更高的拉伸值。