QScrollArea是QT封装好的一个滑动界面类
构造函数如下:

指定一个父对象就行,构造函数提供一个滑动的区域,但是这个区域里是没有内容的,构造函数介绍里面让我们看setWidget()这个函数,该函数添加滑动的widget,我们其他的小控件放到这个滑动widget上

这里有个一定要注意的点,一定要先给widget添加布局后再调用setWidget(),不然啥也显示不了
示例代码如下:
#include "widget.h"
#include "ui_widget.h"
#include <QScrollArea>
#include <QWidget>
#include <QGridLayout>
#include <QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(800,600);
QScrollArea *scrollArea = new QScrollArea(this);
scrollArea->resize(800,600);
QWidget *widget = new QWidget;
QGridLayout *layout = new QGridLayout(widget);
for(int i = 0; i < 200; ++i)
{
QPushButton *btn = new QPushButton(QString("按键%1").arg(i),widget);
btn->setMinimumSize(200, 200);
layout->addWidget(btn, i / 2, i % 2);
}
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setWidget(widget);
}
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
是隐藏其水平和垂直滚动条,参数如下

最终的效果:

使用鼠标滚轮即可上下滑动
原文:https://www.cnblogs.com/chq1224/p/14943893.html