咸鱼DoYoung  
做一条有理想的咸鱼

理解

QScrollArea 可以分成两个部分来看

  1. 上层可以看作一个相框
  2. 下层可以看作一张相片

流程:

  1. 创建一张“相片”——QWidget
    1. 在相片上创建若干“相片内容”——控件
  2. 创建一个“相框”——QScrollArea
  3. “相片”放入“相框”用“布局”——QVBoxLayout>
  4. 将“相片”“相框”整体放到相应的位置——"QScrollArea"使用

代码

#include <QScrollArea>

    QWidget * arWidget = new QWidget; // 创建滚动显示区域幕布
    QVBoxLayout * l = new QVBoxLayout(arWidget); // 创建布局, 用于将控件嵌入幕布中
    /* 创建100个测试按钮
     */
    QList<QPushButton*> btnList;
    for(int i = 0; i < 100;++i)
    {
        btnList << new QPushButton(QString("%1").arg(i));
    }
    /* 将按钮放入幕布中
     */
    for(auto a:btnList)
    {
        l->addWidget(a);
    }

    QScrollArea * testar = new QScrollArea; // 创建滚动显示区域
    testar->setAlignment(Qt::AlignRight); // 设置滚动条位置
    testar->setWidget(arWidget); // 将设置好的幕布嵌入到滚动显示区域

    QVBoxLayout * layout = new QVBoxLayout(this); // 在主界面创建一个布局
    layout->setMargin(0);
    layout->addWidget(testar); // 将滚动显示区域 添加到布局

效果

posted on 2020-09-10 14:21  咸鱼Doyoung  阅读(3824)  评论(2编辑  收藏  举报