Ограничения по размеру для макетов Qt - PullRequest
1 голос
/ 24 октября 2019

Мой виджет имеет два макета. Основной макет - outerLayout, и он всегда должен занимать весь виджет. Он содержит QLabel и второй макет с именем innerLayout.

innerLayout должен быть центрирован внутри outerLayout, и он должен быть достаточно большим, чтобы содержать его виджеты. Я установил ограничения по размеру для обоих макетов, но в следующем коде innerLayout расширяется, чтобы заполнить outerLayout.

outerLayout = new QVBoxLayout();
outerLayout->addWidget(label);
outerLayout->setSizeConstraint(QLayout::SetMaximumSize);
innerLayout = new QGridLayout();
innerLayout->setAlignment(Qt::AlignHCenter);
innerLayout->setSizeConstraint(QLayout::SetFixedSize);
outerLayout ->addLayout(innerLayout);
setLayout(outerLayout);

Если я установлю ограничение размера для обоих макетов на SetFixedSize, обамакеты будут уменьшены до их минимального размера. Но я хочу, чтобы внешний макет занимал все пространство, а внутренний макет занимал минимально возможное пространство. Есть идеи?

1 Ответ

2 голосов
/ 24 октября 2019

Используйте проставки в качестве дополнительных виджетов externallayout. Другими словами: распорки будут родственными элементами внутреннего слоя и будут выдвигать внутреннее расположение к его минимально необходимой поверхности. Вам понадобятся горизонтальные и вертикальные проставки.

...