Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Agarb от Май 03, 2009, 12:31



Название: QFormLayout и полосы прокрутки
Отправлено: Agarb от Май 03, 2009, 12:31
Qt юзаю пару дней) Вопрос наверное банальный.
Имеется длинная анкета в QFormLayout.
Такой вопрос: как сделать так, чтобы поля анкеты были фиксированного размера, а при изменении размера окна то, что не вмещается, было доступно посредством вертикальной полосы прокрутки?


Название: Re: QFormLayout и полосы прокрутки
Отправлено: spirit от Май 03, 2009, 13:26
используй QScrollArea, в качестве виджета, который будет viewport'ом
использую виджет на котором будет твоя анкета с QFormLayout.


Название: Re: QFormLayout и полосы прокрутки
Отправлено: Agarb от Май 03, 2009, 14:26
используй QScrollArea, в качестве виджета, который будет viewport'ом
использую виджет на котором будет твоя анкета с QFormLayout.

Спасибо за ответ, но нельзя ли по-подробнее, пожалуйста.
Сделал следующее:
Код
C++ (Qt)
   QScrollArea* formArea = new QScrollArea;    
   QWidget* vp=new QWidget(formArea);
   formArea->setViewport(vp);
 
   formLayout->setSizeConstraint(QFormLayout::SetFixedSize);
   vp->setLayout(formLayout);
 
...но полосы прокрутки не появляются. Что делаю не так?


Название: Re: QFormLayout и полосы прокрутки
Отправлено: Agarb от Май 03, 2009, 15:21
Разобрался, так работает.
Код
C++ (Qt)
   QScrollArea* formArea = new QScrollArea;
   QWidget* vp=new QWidget(formArea);
   formArea->setWidget(vp);
   vp->setLayout(formLayout);
   formLayout->setSizeConstraint(QFormLayout::SetFixedSize);
//    vp->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
Теперь такой вопрос: как сделать так, чтобы виджет растягивался горизантально на всю область QScrollArea, а вертикально прокручивался? Нужно чтобы была только одна полоса прокрутки - вертикальная. Пробывал setSizePolicy, но не выходит.