Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: akaMDA от Март 01, 2011, 20:08



Название: QScrollArea
Отправлено: akaMDA от Март 01, 2011, 20:08
Необходимо создать много кнопок QPushButton, из количество различное. При этом их нада разместить на ограниченном простанстве. Для размещения выбрал QScrollArea. При этом полосы рокрутки не активны, даже если кнопки выходят за рамку - они просто обрезаются. Как решить данную проблему?


Название: Re: QScrollArea
Отправлено: kibsoft от Март 01, 2011, 20:16
Может разместить кнопки на отдельном виджете, а потом scrollArea->setWidget(этот_виджет);


Название: Re: QScrollArea
Отправлено: alexman от Март 01, 2011, 22:05
Можно еще на QGraphicsScene через QGraphicsProxyWidget :)


Название: Re: QScrollArea
Отправлено: dd от Март 02, 2011, 02:10
Можно почитать документацию и последить за орфографией.


Название: Re: QScrollArea
Отправлено: Igore от Март 02, 2011, 18:29
Размести в scrollArea, layout, через setLayout или через дизайнер.

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

Добовляй кнопки в этот layout
scrollArea->widget()->layout()->addWidget(new QPushButton());


Название: Re: QScrollArea
Отправлено: GreatSnake от Март 02, 2011, 18:44
Цитировать
scrollArea->widget()->setLayout(...);
И всё завалится. Эх, советчик...


Название: Re: QScrollArea
Отправлено: shirushizo от Март 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);