درود بر شما؛
برای اینکار میتوانید شما از QScrollArea استفاده کنید. این کلاس یک منطقهٔنمایش Widgetها و یک QScrollBar را به شما میدهد، و شئ را که میخواهید Scroll کنید را باید به عنوان Child Widget به آن معرفی کنید. برای مثال :
#include <QApplication>
#include <QDialog>
#include <QGroupBox>
#include <QList>
#include <QScrollArea>
#include <QTextEdit>
#include <QVBoxLayout>
int main(int argc, char** argv)
{
QApplication application(argc, argv);
QDialog dialog;
QVBoxLayout layout;
QScrollArea scroll(&dialog);
QGroupBox groupedArea;
QList<QTextEdit*> widgets;
for (int i {}; i < 20; ++i) {
widgets.append(new QTextEdit);
layout.addWidget(widgets.at(i));
}
scroll.setWidget(&groupedArea);
scroll.setWidgetResizable(true);
groupedArea.setLayout(&layout);
dialog.show();
return application.exec();
}
دقّت کنید که باید حتماً تابع setWidgetResizable را با مقدار true برای تغییر اندازهٔ مناسب Widget فراخوانی کنید.
خروجی حاصل از کد بالا :
با تشکر از آقایرضوی.