我在左栏中使用QFormLayout
QLabels
,右栏中使用各种小部件。在右侧,有标签,复选框,组合或线编辑。不幸的是,每个控件都有不同的自然高度。但我想让表单布局中的每一行具有由最大的一行确定的相等高度(我知道它在哪一行)。有没有简单的方法来实现这一目标?我找不到像QFormLayout::setRowHeight()
这样的内容。
答案 0 :(得分:1)
一种解决方案,只需在运行时使用以下函数为所有小部件分配相同的大小:
void setEqualRowHeight(QFormLayout *formLayout, int height)
{
QWidget *w;
for(int i = 0; i < formLayout->rowCount(); i++) {
QLayoutItem *item = formLayout->itemAt(i, QFormLayout::FieldRole);
if (item && (w = item->widget())) {
w->setFixedHeight(height);
}
}
}