уменьшить родительское окно вместо того, чтобы другие виджеты росли - PullRequest
1 голос
/ 11 января 2011

У меня есть окно, которое содержит только один групповой блок, который содержит еще несколько групповых блоков в QVBoxLayout (содержимое этих файлов также не имеет фиксированного размера). Эти внутренние групповые блоки можно проверять, и при снятии флажка они сворачиваются (свернутая групповая коробка имеет уменьшенную (максимальную) высоту 30 пикселей и isFlat == true).

То, чего я пытаюсь достичь, это: Когда один из внутренних групповых блоков свернут, внешний групповой ящик и окно должны соответственно уменьшиться (в настоящее время вместо этого растут другие не свернутые групповые блоки). Но пользователь все еще должен иметь возможность изменить размер окна, что должно привести к соответствующему росту групповых блоков:

alt text Я играл с QWidget::setSizePolicy и QLayout::setSizeConstraint различных макетов / виджетов, но пока не достиг удовлетворительного результата ..
Каков наилучший способ достичь этого? Можно ли это сделать без реализации собственных функций подсказки размера?

1 Ответ

2 голосов
/ 11 января 2011

Я сделал игрушечную коробку, которая, кажется, имеет требуемое поведение, вызвав

adjustSize();

на родительском QGroupBox после изменения размера внутренних QGroupBoxes.Я сделал это слотом, чтобы я мог подключить его к тому же сигналу, который изменяет размер внутреннего группового блока для удобства.

...