Python QT5 - макет QTWidget увеличивается/уменьшается до максимального размера/минимального размера

У меня есть вопрос о макете для python с qt5. Итак, есть основное окно с нормальной вертикальной компоновкой с 2-мя виджетами. Первый — это виджет с областью прокрутки, для которой установлены минимальный размер и максимальный размер. Второй — это еще один виджет с еще одним виджетом области прокрутки.

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

Я пробовал все виды комбинаций sizePolicy, но не могу заставить их работать. Второй виджет имеет sizePolicy Prefered/Prefered с вертикальной растяжкой, установленной на 1, поэтому он занимает все доступное пространство для себя.

1-й виджет имеет miniumSize 100 и maxSize 250. Поэтому в идеале он должен уменьшаться до 100-250, если содержимого меньше, и должен увеличиваться до 250 и активировать полосу прокрутки, если содержимое становится больше.

Если я обновлю содержимое первого виджета (т.е. нажав на кнопку), он должен: 1. изменить размер/уменьшиться/увеличиться, чтобы содержимое уместилось, но не меньше 100 и не больше 250. Если у меня меньше содержимого, я не должен возможность сделать виджет от одного размера до 250 - он всегда должен брать точно необходимую высоту.

Любая идея о том, как это сделать?

пример макета


person Community    schedule 01.12.2018    source источник
comment
предоставьте минимальный воспроизводимый пример   -  person S. Nick    schedule 01.12.2018
comment
‹пред›‹код›‹/код›‹/пре›   -  person    schedule 01.12.2018


Ответы (1)


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

person Matthew Woodruff    schedule 01.12.2018