• QT控件 — QScrollArea


    例子:在窗体上显示一张大图片,然后使用滚动条来调节。

    在窗体上添加控件 Scroll Area,如下图所示
    在这里插入图片描述
    需要说明的是,控件 Scroll Area 也相当于是一个容器。

    后面主要说一下这个属性
    在这里插入图片描述
    在窗体上在放一个Label作为图片的容器。之后点击加载所要展示的大图片。
    在这里插入图片描述
    将label控件拖进scrollArea这个容器中,点击运行,会发现,并没有效果。
    在这里插入图片描述
    这是因为布局的原因。
    在这里插入图片描述
    将其布置为水平布局,
    在这里插入图片描述
    会发现
    在这里插入图片描述
    运行代码,也是这样。
    除了上面所说的打破布局和拖动Label到scrollArea内之外,还可以直接使用代码

    ui->scrollArea->setWidget(ui->label);
    
    • 1

    运行结果也是一样。

    下面,再来说下上面提到的属性。

    它是可以自动调节它内部控件的对齐方式,对于大于它的控件或图片,可能没有效果。这里使用代码来实现,试下。

    ui->scrollArea->setWidget(ui->pushButton);
    
    • 1

    在没勾选时,
    在这里插入图片描述
    勾选时,
    在这里插入图片描述
    在这里插入图片描述
    其他对齐方式也可以尝试下。

    下面再介绍函数 ensureVisible 和 ensureWidgetVisible

    首先,是 ensureWidgetVisible 这个函数,添加个按键,转到槽函数,试下。

    void Widget::on_pushButton_clicked()
    {
        ui->scrollArea->ensureWidgetVisible(ui->label);
    }
    
    • 1
    • 2
    • 3
    • 4

    需要注意,需要将该属性
    在这里插入图片描述
    勾选。运行效果如下,
    请添加图片描述
    看下 ensureWidgetVisible 这个函数的介绍。
    在这里插入图片描述
    滚动区域的内容,这样 QScrollArea::widget() 的 childWidget 就可以在视口内看到,通过 xmargin 和 ymargin 以像素为单位指定边缘。如果指定的点如果无法到达指定的点,则将内容滚动到最近的有效位置。两个边距的默认值都是50像素。

    (没什么效果,不太明白这个函数什么意思)

    转而去看 ensureVisible 这个函数。

    链接: https://www.bilibili.com/video/BV1Gh411h7Nb/?spm_id_from=333.880.my_history.page.click&vd_source=b91967c499b23106586d7aa35af46413

    做个联动,

    拖个控件
    在这里插入图片描述
    在这里插入图片描述
    调整下范围,调大一些。
    在这里插入图片描述
    在这里插入图片描述
    使用下图信号(选参数为 int 合适)
    在这里插入图片描述

    void Widget::on_spinBox_valueChanged(const QString &arg1)
    {
        ui->scrollArea->ensureVisible(arg1.toInt(), 100);//直接选int类型,不用转
    }
    
    • 1
    • 2
    • 3
    • 4

    运行效果如下,
    在这里插入图片描述
    大约在260左右开始移动,应该是加了 xmargin = 50 之后得到的结果。
    在这里插入图片描述

    这两个函数不好理解。不太好用。

  • 相关阅读:
    渣渣双非秋招以来第一份offer
    .NET 反向代理-YARP
    最高频的五个面试题
    注释、接续、转义等符号
    测试工程师通常用哪个单元测试库来测试Java程序?
    HarmonyOS系统中内核实现温湿度采集方法
    给XLua生成Unity Api的EmmyLua代码提示
    深度解读ChatGPT基本原理
    达梦DEM监控配置
    VSCode:ssh实现配置远程开发、免密登录(Windows)
  • 原文地址:https://blog.csdn.net/xuechanba/article/details/128136295