Как добавить полосу прокрутки в родительский QWidget - PullRequest
2 голосов
/ 02 августа 2010

Я понимаю, как добавить область прокрутки для определенного виджета. Однако в моем случае Qwidget имеет несколько дочерних виджетов, и все они устанавливаются с помощью QVBoxLayout. Теперь, как я могу добавить полосу прокрутки в этом случае? Здесь QWidget не является центральным виджетом, это одна из страниц TabWidget. Мой код выглядит так:

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

xTab = new QWidget;

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

xTab->setLayout(formLayout);

Теперь, как я могу установить полосу прокрутки на xTab? Я пытался использовать

scrollArea = new QScrollArea;
scrollArea->setWidget(xTab);

однако, это не работает.

Любые идеи / предложения полезны и ценятся.

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

Вы пытались использовать QScrollArea в качестве вкладки?

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

xTab = new QScrollArea; 
formLayout = new QFormLayout; formLay....
xTab->setLayout(formLayout);
center->addTab(xTab, "XXX Tab");
0 голосов
/ 29 мая 2013

Я имел успех, используя следующее:

scroll=new QScrollArea(mainWindow->centralWidget);
scroll->setGeometry(mainWindow->tabWidget->geometry());
scroll->setWidget(mainWindow->tabWidget);
scroll->show();

QScrollArea определяет, где будет отображаться прокручиваемый виджет. Если parent равен 0, это немодальное окно. setGeometry устанавливает экземпляр QScrollArea на желаемые размеры (размер вкладки). setWidget определяет, какой виджет будет прокручивать QScrollArea.

...