QListWidget, который изменяет размер вместо прокрутки

Как изменить поведение QListWidget , чтобы он изменял размер своей высоты вместо выбора (на первый взгляд произвольной) высоты и добавления полос прокрутки? Смотрите снимок экрана:

screen shot

QListView должны занимать столько места по горизонтали, сколько они могут (создавая столько «столбцов», если хотите). Затем они переносят и создают столько строк, сколько необходимо для подходят все предметы. Эти расчеты следует корректировать по мере изменения размера окна. Все работает нормально.

Однако то, что я хочу, чтобы произошло, так это чтобы вместо того, чтобы высота оставалась прежней, QListView должен увеличиваться или уменьшаться по вертикали и никогда не нуждается в полосах прокрутки. При необходимости прокрутка будет выполняться на родительском QWidget , в котором размещены все метки и списки. Похоже, что как только высота QListWidget установлена ​​(не знаю, откуда взялось значение по умолчанию), она никогда не изменится. В некоторых случаях он слишком велик (см. Второй список «Тест» выше) и слишком мал в других (см. Первый список «пустых карт» выше).

В приведенном выше макете нет ничего удивительного: два QLabel и два QListWidget в QVBoxLayout. Вот свойства, которые я установил для QListWidget :

setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));

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

6
задан Dave Mateer 10 September 2010 в 13:59
поделиться