Russian Qt Forum
Сентябрь 21, 2024, 15:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QScrollArea  (Прочитано 4713 раз)
akaMDA
Гость
« : Март 01, 2011, 20:08 »

Необходимо создать много кнопок QPushButton, из количество различное. При этом их нада разместить на ограниченном простанстве. Для размещения выбрал QScrollArea. При этом полосы рокрутки не активны, даже если кнопки выходят за рамку - они просто обрезаются. Как решить данную проблему?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Март 01, 2011, 20:16 »

Может разместить кнопки на отдельном виджете, а потом scrollArea->setWidget(этот_виджет);
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
alexman
Гость
« Ответ #2 : Март 01, 2011, 22:05 »

Можно еще на QGraphicsScene через QGraphicsProxyWidget Улыбающийся
Записан
dd
Гость
« Ответ #3 : Март 02, 2011, 02:10 »

Можно почитать документацию и последить за орфографией.
Записан
Igore
Гость
« Ответ #4 : Март 02, 2011, 18:29 »

Размести в scrollArea, layout, через setLayout или через дизайнер.

scrollArea->widget()->setLayout(...);

Добовляй кнопки в этот layout
scrollArea->widget()->layout()->addWidget(new QPushButton());
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Март 02, 2011, 18:44 »

Цитировать
scrollArea->widget()->setLayout(...);
И всё завалится. Эх, советчик...
Записан

Qt 5.11/4.8.7 (X11/Win)
shirushizo
Гость
« Ответ #6 : Март 02, 2011, 20:47 »

Кнопки в лейоут, лейоту на виджет, виджет в скролларею... Вот оно счастье:
Код:
QWidget *widgetForButtons=new QWidget(this);
QGridLayout *layoutForButtons=new QGridLayout(widgetForButtons);
layoutForButtons->addWidget(button1,0,0);
...
QScrollArea *scrollArea=new QScrollArea(this);
scrollArea->setWidget(widgetForButtons);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.