Как добавить полосу прокрутки в родительский 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.

Другие вопросы по тегам