给QWidget添加滚动条(QScrollArea)

Qt版本:Qt 5.2.0 

  • 代码如下
#include "widget.h"
#include "ui_widget.h"

#include <QPalette>
#include <QScrollArea>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->resize(200,200);

    //给父窗体填充颜色
    QPalette palette = ui->widget_2->palette();
    palette.setBrush(QPalette::Window,QBrush(QColor(61,61,61)));
    ui->widget_2->setAutoFillBackground(true);
    ui->widget_2->setPalette(palette);

    QScrollArea *m_pScroll = new QScrollArea(ui->widget);
    m_pScroll->setWidget(ui->widget_2);//给widget_2设置滚动条
    ui->widget_2->setMinimumSize(1500,1000);//这里注意,要比主窗体的尺寸要大,不然太小的话会留下一片空白

    QHBoxLayout *pLayout = new QHBoxLayout;
    pLayout->addWidget(m_pScroll);
    pLayout->setMargin(0);
    pLayout->setSpacing(0);
    ui->widget->setLayout(pLayout);
}

Widget::~Widget()
{
    delete ui;
}
  • 效果如下图

    这里写图片描述
    代码很简单,需要源码的也可以点击下面的链接下载,如果运行不出来,可能是你的Qt配置和我的不一样,你可以自己建一个工程再Ctrl + C,Ctrl + V
    点击下载测试代码

猜你喜欢

转载自blog.csdn.net/qq_36391817/article/details/78616874