我使用QGridLayout并将布局定义为ui文件。
我需要实现这样的布局:
|第0列|第1列|第2列|第3列|
|宽度足以适合文本|空格|行编辑宽度为66-70 |宽度足以适合文本|
我的问题是第1列和第2列。
我应该使用哪种尺寸的政策来为第1列提供所有可用空间?
我正在尝试将min width = 66和max width = 70设置为第2列。并将“扩展”宽度策略设置为第1列。
但由于某种原因,在这种情况下,第1列扩展得更多,它应该是,第2列的数量少于66。
如果我将第1列的大小策略设置为“最大”,则将所有空间都设置为第2列。该列的宽度大于行编辑小部件,因此它不再对齐。
答案 0 :(得分:1)
除了单位之外,你做的一切都很正确。
我假设您的行编辑宽度以字符形式给出,但您似乎正在使用该数字来设置以像素为单位的宽度。
我会按以下方式设置:
qreal em = QFontMetricsF(ui.lineEdit->font()).width('m');
ui.lineEdit->setMinimumWidth(round(em*66));
ui.lineEdit->setMaximumWidth(round(em*70));