Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Day от Октябрь 16, 2017, 11:11



Название: Размер выпадающего списка QCombobox
Отправлено: Day от Октябрь 16, 2017, 11:11
Есть QCombobox *cb. В его выпадающем списке пара десятков элементов. А показывает только 10 (со скроллингом).
Хотелось бы, чтобы показывал все, тем более что места на экране и в родительском виджете хватает
Игры с cb->view()->setSizePolicy ничего не дали.
Единственное, на что он среагировал: cb->view()->setFixedSize(300, 800);
То есть выход есть. Подсчитать требуемый размер и его установить. Но уж больно как-то громоздко и несимпатично получается. Нет ли какого-то родного способа?


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Hellraiser от Октябрь 16, 2017, 11:38
а установить через setMaxVisibleItems() ?


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Day от Октябрь 16, 2017, 11:58
Hellraiser, отлично! Спасибо! Просто не знал такого метода. Век живи-... :)


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Day от Октябрь 16, 2017, 12:04
Тогда уже до кучи... Давно мучаюсь с QListWidget. Проблема того же плана Ничего лучше не придумал, как высчитывать размеры итемов, суммировать и устанавливать setFixedSize(). Может быть там тоже есть какой-нибудь метод?


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Hellraiser от Октябрь 16, 2017, 12:13
А с ним то что не так? Сколько менеджер компоновки ему даст, столько элементов он и отобразит. Просто просить надо не у него, а у менеджера. Ну или ставить ему фиксированный размер.


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Day от Октябрь 16, 2017, 12:30
А с ним то что не так? Сколько менеджер компоновки ему даст, столько элементов он и отобразит. Просто просить надо не у него, а у менеджера.
В том-то и дело. Дает ему лайоут очень немного. И все игры с setSizePolicy ничего вразумительного не дают.
Цитировать
Ну или ставить ему фиксированный размер.
Так и делаю. Высчитываю высоту-ширину итемов в зависимости от размера фонта. При этом получается все очень приблизительно, экспериментально приходится подбирать коэффициенты. Геморно как-то все. Но если ничего лучше нет - остановимся на этом. :)


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Hellraiser от Октябрь 16, 2017, 12:48
Вообще-то у менеджера можно попросить приоритет того или иного виджета. Называется сие чудо - стретч-фактор. Установить можно как в коде, так и в дизайнере. Подробнее (http://doc.qt.io/qt-5.6/qboxlayout.html#addWidget). Для остальных - аналогично. Чем больше стретч - тем больше приоритет виджета.


Название: Re: Размер выпадающего списка QCombobox
Отправлено: Day от Октябрь 16, 2017, 13:06
Понял. Спасибо. Попробую.