Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Вопрос по QScrollArea


Автор: aqt 12.11.2015, 19:26
Привет всем!
Необходимо динамически изменять длину вертикального ползунка в QScrollArea. Пробовал делать так:

Код

ScrollArea = new QScrollArea (this);
ScrollArea->verticalScrollBar()->setRange(0, 100);


и так:
Код

QScrollBar *sb = new QScrollBar (ScrollArea_glavi->verticalScrollBar());
sb->rangeChanged(0, 50);
ScrollArea_glavi->setVerticalScrollBar(sb);


ничего не помогает..

Автор: math64 13.11.2015, 07:59
Что конкретно Вы хотите? Изменить размер прокручиваемой области? Тогда нужно изменять размер вложенного в ScrollArea виджета.
Или изменить размер самой полосы прокрутки, чтобы разместить виджеты сверху/снизу от неё?
Тогда нужно делать производный класс от QScrollArea и переопределять метод размещающий скроллбары.

Автор: aqt 13.11.2015, 14:24
Необходимо изменить размер прокручиваемой области.

Добавлено через 6 минут и 22 секунды
Как изменять размер вложенного в ScrollArea виджета? Имеется ввиду виджет 
Код
QScrollArea::verticalScrollBar()
?

Автор: math64 16.11.2015, 09:24
Цитата(aqt @  13.11.2015,  14:24 Найти цитируемый пост)
Необходимо изменить размер прокручиваемой области.

Так:
Код

ScrollArea->widget()->setGeometry(...);


Код

ScrollArea->widget()->setMinimumSize(...);

Или так:
Код

QVBoxLayout *layout = new QVBoxLayout;
for(int i = 1; i <= 100; i++)
  layout->addWidget(new QLabel(QString("label%1").arg(i) );
ScrollArea->widget()->setLayout(layout);


Цитата(aqt @  13.11.2015,  14:24 Найти цитируемый пост)
Как изменять размер вложенного в ScrollArea виджета? Имеется ввиду виджет 

Обычно изменяют размеры горизонтального скролла, чтобы, например, добавить закладки страниц слева от него, как в Excel. Как это делать не знаю, но наверняка в сети есть примеры - поищи.

Автор: aqt 19.11.2015, 20:29
Огромное спасибо! Это именно то что я искал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)