Как изменить поведение QListWidget
, чтобы оно изменяло свою высоту вместо выбора (кажущейся произвольной) высоты и добавления полос прокрутки? Смотреть скриншот:
QListView
должны заполнять столько места по горизонтали, сколько они могут (создавая столько «столбцов», если хотите). Затем они оборачиваются и образуют столько строк, сколько необходимо для размещения всех элементов. Эти расчеты должны быть скорректированы по мере изменения размера окна. Это все работает нормально.
Тем не менее, я хочу, чтобы произошло: вместо того, чтобы высота оставалась неизменной, QListView
должен увеличиваться или уменьшаться по вертикали и никогда не нуждаться в полосах прокрутки. Прокрутка, если необходимо, будет обрабатываться на родительском QWidget
, в котором размещены все метки и списки. Кажется, что как только высота QListWidget
установлена (не знаю, откуда исходит его значение по умолчанию), она никогда не изменится. В некоторых случаях он слишком велик (см. Второй список «Тест» выше) и слишком мал в других (см. Выше первый список «пустых карт»)
В приведенной выше схеме нет ничего удивительного: два QLabel
и два QListWidget
в QVBoxLayout.
Вот свойства, которые я установил для QListWidget
:
setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));
(Я уже пытался установить политики горизонтальной и вертикальной полосы прокрутки, но это просто отключает полосы прокрутки, обрезая содержимое. Не то, что я хочу.)