1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #include <QApplication> #include <QWidget> #include <QScrollArea> #include <QVBoxLayout> #include <QPushButton> #include <QLabel>
void setupScrollAreaDemo(QWidget *parent) { QVBoxLayout *mainLayout = new QVBoxLayout(parent);
QScrollArea *scrollArea = new QScrollArea(parent);
QWidget *container = new QWidget(); QVBoxLayout *containerLayout = new QVBoxLayout(container);
for (int i = 1; i <= 30; ++i) { QString txt = QString("这是第 %1 行测试内容").arg(i); containerLayout->addWidget(new QPushButton(txt, container)); }
scrollArea->setWidget(container);
scrollArea->setWidgetResizable(true);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
mainLayout->addWidget(new QLabel("下方是一个可以滚动的区域:")); mainLayout->addWidget(scrollArea); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; w.setWindowTitle("QScrollArea 滚动测试"); w.resize(300, 400); setupScrollAreaDemo(&w); w.show(); return a.exec(); }
|