我有一个QHBoxLayout包括两个QLabel小部件.我的左边QLabel比右边大得多QLabel,但是,QHBoxLayout将输出分成两半,因此布局的左侧太小而布局的右侧太大.如何修改QHBoxLayout为每个包含的小部件创建不等比例的空间?
如果需要,布局系统应为更大的标签保留更多空间,并且如果有可用空间.
如果要强制布局为较大的标签保留特定的空间量,可以使用QBoxLayout::setStretch.
例如,如果要为较大的标签保留70%的空间,为较小的标签保留30%的空间,可以使用:
ui->horizontalLayout->setStretch(0, 7);
ui->horizontalLayout->setStretch(1, 3);
Run Code Online (Sandbox Code Playgroud)
或者,您可以使较小的标签仅保留其所需的绝对最小空间,并使用较大的标签以使用大小策略保留尽可能多的空间.
对于较小的标签,请将水平尺寸策略设置为QSizePolicy::Maximum,对于较大的标签,将水平尺寸策略设置为QSizePolicy::Minimum(或QSizePolicy::MinimumExpanding).
ui->label_Large->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
ui->label_Small->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看不同大小的策略.