Russian Qt Forum
Мая 04, 2025, 17:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QScrollArea  (Прочитано 4885 раз)
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.027 секунд. Запросов: 20.