I have to dynamically create push buttons depending on user inputs, therefore if the user gives a large input number, the widget containing the push buttons has to have the ability to scroll up and down.
For this reason, I am using QScrollArea. I generate the template in Qt designer and the UIC generates the code for me, after which I add in my part which should handle dynamic creation of push buttons. However, I can not seem to get the vertical scroll bars to appear. Here is the relevant part of the code.
verticalWidget = new QWidget(FWHMWorkflowDialog); verticalWidget->setObjectName(QString::fromUtf8("verticalWidget")); verticalWidget->setMinimumSize(QSize(150, 0)); verticalWidget->setMaximumSize(QSize(150, 16777215)); verticalLayout_5 = new QVBoxLayout(verticalWidget); verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5")); scrollArea = new QScrollArea(verticalWidget); scrollArea->setObjectName(QString::fromUtf8("scrollArea")); scrollArea->setMaximumSize(QSize(150, 16777215)); scrollArea->setWidgetResizable(true); scrollAreaWidgetContents = new QWidget(); scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); scrollAreaWidgetContents->setGeometry(QRect(0, 0, 130, 432)); numberOfSlices = numberSlices; for (int i = 0; i < numberOfSlices; i++) { QWidget *horizontalWidget = new QWidget(scrollAreaWidgetContents); horizontalWidget->setMaximumSize(150,40); horizontalWidget->setGeometry(QRect(0, i*40, 150, 40)); hWidgetList.push_back(horizontalWidget); QHBoxLayout *hLayout = new QHBoxLayout(horizontalWidget); hLayoutList.push_back(hLayout); hLayout->setSizeConstraint(QLayout::SetMinimumSize); hLayout->setContentsMargins(-1, 1, -1, 1); QPushButton *pushButton = new QPushButton(horizontalWidget); pushButtonList.push_back(pushButton); QString temp = QString("m_sliceButton").arg(i); pushButtonList->setObjectName(temp); pushButtonList->setGeometry(QRect(10, 20+i*40, 98, 27)); hLayout->addWidget(pushButton); QCheckBox *checkBox = new QCheckBox(horizontalWidget); checkBoxList.push_back(checkBox); temp = QString("m_checkBox").arg(i); checkBoxList->setObjectName(temp); checkBoxList->setEnabled(true); checkBoxList->setGeometry(QRect(110, 20+i*40, 21, 22)); hLayout->addWidget(checkBox); } scrollArea->setWidget(scrollAreaWidgetContents); //scrollArea->setWidgetResizable(true); verticalLayout_5->addWidget(scrollArea); The output window always looks like the following.

In this example the input by the user is 25, however, you can see that the 21st button is cut off and 4 other buttons are not visible.
The size window problem occurring after scroll functionality started working.

Источник: https://stackoverflow.com/questions/146 ... scrollbars