我有一个QHBoxLayout包含两个QLabel小部件的。我的 leftQLabel比 right 大得多QLabel,但是,QHBoxLayout将输出分成两半,所以布局的左侧太小而布局的右侧太大。如何修改QHBoxLayout为每个包含的小部件创建不等比例的空间?
2438 次
1 回答
8
如果需要,并且有可用空间,布局系统应该为较大的标签保留更多空间。
如果您想强制布局为较大的标签保留特定数量的空间,您可以使用QBoxLayout::setStretch.
例如,如果您想为较大的标签保留 70% 的空间,为较小的标签保留 30% 的空间,您可以这样使用:
ui->horizontalLayout->setStretch(0, 7);
ui->horizontalLayout->setStretch(1, 3);
或者,您可以使较小的标签只保留它需要的绝对最小空间,而较大的标签通过使用大小策略来保留尽可能多的空间。
对于较小的标签,将水平尺寸策略设置为QSizePolicy::Maximum,对于较大的标签,将水平尺寸策略设置为QSizePolicy::Minimum(或QSizePolicy::MinimumExpanding)。
ui->label_Large->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
ui->label_Small->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
您可以在此处查看不同大小策略的作用。
于 2014-05-02T08:03:33.133 回答