Qt Bildlaufbereich wird nicht in Bildlaufleisten hinzugefügt
Hallo Leute, ich muss abhängig von Benutzereingaben dynamisch Drucktasten erstellen. Wenn der Benutzer eine große Eingabenummer eingibt, muss das Widget, das die Drucktasten enthält, in der Lage sein, nach oben und unten zu scrollen. Aus diesem Grund benutze ich QScrollArea. Ich generiere die Vorlage in Qt Designer und die UIC generiert den Code für mich. Danach füge ich meinen Teil hinzu, der die dynamische Erstellung von Drucktasten übernehmen soll. Ich kann jedoch nicht scheinen, die vertikalen Bildlaufleisten zu erhalten, um zu erscheinen. Hier ist der relevante Teil des Codes.
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[i]->setObjectName(temp);
pushButtonList[i]->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[i]->setObjectName(temp);
checkBoxList[i]->setEnabled(true);
checkBoxList[i]->setGeometry(QRect(110, 20+i*40, 21, 22));
hLayout->addWidget(checkBox);
}
scrollArea->setWidget(scrollAreaWidgetContents);
//scrollArea->setWidgetResizable(true);
verticalLayout_5->addWidget(scrollArea);
Das Ausgabefenster sieht immer so aus.
In diesem Beispiel ist die Benutzereingabe 25, Sie können jedoch sehen, dass die 21. Taste abgeschnitten ist und 4 andere Tasten nicht sichtbar sind.
Das Problem mit dem Größenfenster trat auf, nachdem die Bildlauffunktion zu funktionieren begann.