Как добавить полосу прокрутки в родительский QWidget
Я понимаю, как добавить scrollArea для определенного виджета. Однако в моем случае 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);
Теперь, как я могу установить scrollBar на xTab? Я пытался с помощью
scrollArea = new QScrollArea;
scrollArea->setWidget(xTab);
Однако это не работает.
Любая идея / предложения полезны и ценятся.
2 ответа
Вы пытались использовать QScrollArea
как вкладка?
QTabWIdget *center = new QTabWidget; setCentralWIdget(center);
xTab = new QScrollArea;
formLayout = new QFormLayout; formLay....
xTab->setLayout(formLayout);
center->addTab(xTab, "XXX Tab");
Я имел успех, используя следующее:
scroll=new QScrollArea(mainWindow->centralWidget);
scroll->setGeometry(mainWindow->tabWidget->geometry());
scroll->setWidget(mainWindow->tabWidget);
scroll->show();
QScrollArea определяет, где будет отображаться прокручиваемый виджет. Если parent равен 0, это немодальное окно. setGeometry устанавливает экземпляр QScrollArea на желаемые размеры (размер вкладки). setWidget определяет, какой виджет будет прокручивать QScrollArea.