Название: Два вопроса по программной прокрутке QScrollArea [Qt5] Отправлено: Crazy Sage от Января 25, 2018, 09:36 Приветствую.
Такой вопрос, есть у меня QScrollArea, в нём QVBoxLayout, в нём куча кнопок, кнопки создаются динамически, количество их меняется по ходу работы. Код добавления кнопки Код: QToolButton* btn = new QToolButton(ui.previewList); Мне надо иногда из программы прокручивать ScrollArea так, чтобы была видна одна из кнопок и тут начинаются проблемы. 1. ui.previewList->ensureWidgetVisible(btn) не даёт никакого эффекта вообще, видимо потому что кнопки принадлежат лэйауту, а не ему. 2. если я хочу прокрутить до самого конца, то все из нижеприведённых вариантов приводят к тому, что слайдер прокручивается так, что аккуратно последняя кнопка не видна (хотя я проверил, я вначале захожу в добавление кнопок, потом вызываю прокрутку, может надо ещё что-то сделать, чтобы принудительно заставить QScrollArea пересчитать свойства своего скроллбара? Код: //Вариант 1 Как правильно сделать, чтобы подобная прокрутка работала? Название: Re: Два вопроса по программной прокрутке QScrollArea [Qt5] Отправлено: Crazy Sage от Января 27, 2018, 12:21 Со второй проблемой я разобрался, надо было добавить processEvents перед прокруткой.
А вот как аккуратно решить первую, не занимаясь обработкой положения всех кнопок вручную как-то пока не понимаю. Название: Re: Два вопроса по программной прокрутке QScrollArea [Qt5] Отправлено: Crazy Sage от Января 31, 2018, 13:58 C EnsureItemVisible тоже разобрался, недостаточно внимательно читал мануал, надо было внутреннему лэйауту поставить SizeConstraint SetMinAndMaxSize
|