例子:在窗体上显示一张大图片,然后使用滚动条来调节。
在窗体上添加控件 Scroll Area,如下图所示

需要说明的是,控件 Scroll Area 也相当于是一个容器。
后面主要说一下这个属性

在窗体上在放一个Label作为图片的容器。之后点击加载所要展示的大图片。

将label控件拖进scrollArea这个容器中,点击运行,会发现,并没有效果。

这是因为布局的原因。

将其布置为水平布局,

会发现

运行代码,也是这样。
除了上面所说的打破布局和拖动Label到scrollArea内之外,还可以直接使用代码
ui->scrollArea->setWidget(ui->label);
运行结果也是一样。
下面,再来说下上面提到的属性。
它是可以自动调节它内部控件的对齐方式,对于大于它的控件或图片,可能没有效果。这里使用代码来实现,试下。
ui->scrollArea->setWidget(ui->pushButton);
在没勾选时,

勾选时,


其他对齐方式也可以尝试下。
下面再介绍函数 ensureVisible 和 ensureWidgetVisible
首先,是 ensureWidgetVisible 这个函数,添加个按键,转到槽函数,试下。
void Widget::on_pushButton_clicked()
{
ui->scrollArea->ensureWidgetVisible(ui->label);
}
需要注意,需要将该属性

勾选。运行效果如下,

看下 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类型,不用转
}
运行效果如下,

大约在260左右开始移动,应该是加了 xmargin = 50 之后得到的结果。

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

![[附源码]Python计算机毕业设计Django贵港高铁站志愿者服务平台](https://img-blog.csdnimg.cn/2afb188f1a7c4f17ae6aa90df5dba9cc.png)


![[附源码]Python计算机毕业设计SSM开小灶线下管理系统(程序+LW)](https://img-blog.csdnimg.cn/c11d602b2d764ae8b86bac766f118997.png)
![[附源码]Python计算机毕业设计Django驾校预约管理系统](https://img-blog.csdnimg.cn/4f950ae72f764dbaa60c06d5c65b83a6.png)


![[附源码]Python计算机毕业设计Django会议室预定管理APP](https://img-blog.csdnimg.cn/bfbd72515f584ac6af7a3746f707f062.png)







![[附源码]Python计算机毕业设计Django基于JavaWeb的学校社团活动管理系统](https://img-blog.csdnimg.cn/1eeeac6725ad4ddebc5b6b583c548889.png)


