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);
是隐藏其水平和垂直滚动条,参数如下
最终的效果:
使用鼠标滚轮即可上下滑动