tags:

views:

167

answers:

1

Hi,

I understand how to add a scrollArea to a particular widget. However in my case Qwidget has multiple child widgets and these are all set using QVBoxLayout. Now how can I add a scroll bar in this case. Here QWidget is not center widget, its one of the pages of the TabWidget. My code look like:

QTabWIdget *center = new QTabWidget; setCentralWIdget(center);

xTab = new QWidget;

formLayout = new QFormLayout; formLayout->addWidget(...); formLayout->addWidget(...); formLayout->addWidget(...); formLayout->addWidget(...);

xTab->setLayout(formLayout);

Now how can I set the scrollBar to xTab. I tried using like scrollArea = new QScrollArea; scrollArea->setWidget(xTab);

however this isn't working.

Any idea/suggestions are helpful and appreciated.

+2  A: 

Have you tried using QScrollArea as the tab page?

QTabWIdget *center = new QTabWidget; setCentralWIdget(center);

xTab = new QScrollArea; 
formLayout = new QFormLayout; formLay....
xTab->setLayout(formLayout);
center->addTab(xTab, "XXX Tab");
ak
I tried that way too. However in this case its resizing the widgets. In this tab I have a textBrowser and instead of enabling the scrollBar to scroll the contents, the TextBrowser is resized much like a lineEdit and all the widgets are adjusted in the available space.
I exclusively set xTab->setWidgetResizable(false) - even though its by default. Even this didn't help. Also, I am wondering this way and setWidget(xTab) aren't same functionally.
by default most of the widgets have their size policy set to QSizePolicy::Preferred which means that the widget can be expanded, but there is no advantage to do this. You may want to set the minimum size constraints on the child widgets to ensure their usability
ak