小部件放入QGridLayout

时间:2012-06-08 12:55:30

标签: qt size width qgridlayout

我使用QGridLayout并将布局定义为ui文件。

我需要实现这样的布局:

|第0列|第1列|第2列|第3列|

|宽度足以适合文本|空格|行编辑宽度为66-70 |宽度足以适合文本|

我的问题是第1列和第2列。

我应该使用哪种尺寸的政策来为第1列提供所有可用空间?

我正在尝试将min width = 66和max width = 70设置为第2列。并将“扩展”宽度策略设置为第1列。

但由于某种原因,在这种情况下,第1列扩展得更多,它应该是,第2列的数量少于66。

如果我将第1列的大小策略设置为“最大”,则将所有空间都设置为第2列。该列的宽度大于行编辑小部件,因此它不再对齐。

1 个答案:

答案 0 :(得分:1)

除了单位之外,你做的一切都很正确。

我假设您的行编辑宽度以字符形式给出,但您似乎正在使用该数字来设置以像素为单位的宽度。

我会按以下方式设置:

qreal em = QFontMetricsF(ui.lineEdit->font()).width('m');
ui.lineEdit->setMinimumWidth(round(em*66));
ui.lineEdit->setMaximumWidth(round(em*70));