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);