0

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

我需要实现这样的布局:

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

|宽度足以容纳文本|空白空间|宽度为 66-70 的行编辑|宽度足以容纳文本|

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

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

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

但由于某种原因,在这种情况下,第 1 列扩展得更多,第 2 列少于 66。

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

4

1 回答 1

1

你做的一切都是正确的,除了单位。

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

我会按以下方式设置它:

qreal em = QFontMetricsF(ui.lineEdit->font()).width('m');
ui.lineEdit->setMinimumWidth(round(em*66));
ui.lineEdit->setMaximumWidth(round(em*70));
于 2012-06-08T17:17:37.973 回答