QHBoxLayout Spacing

у меня есть QHBoxLayout это включает в себя два QLabel виджеты. Мой левый QLabel намного больше моего права QLabel, Тем не менее QHBoxLayout делит вывод пополам, поэтому левая сторона макета слишком мала, а правая часть макета слишком велика. Как мне изменить QHBoxLayout создать неравное пропорциональное пространство для каждого включенного виджета?

0

Решение

Система макета должна зарезервировать больше места для большей метки, если это необходимо, и если есть свободное место.

Если вы хотите, чтобы макет зарезервировал определенный объем пространства для большей метки, вы можете использовать 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);

Вы можете увидеть, что делают политики разных размеров Вот.

5

Другие решения


По вопросам рекламы [email protected]