QT控件 — QScrollArea

news2024/10/2 14:28:30

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

在窗体上添加控件 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 之后得到的结果。
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker Toolbox下载安装运行镜像

1、Docker Toolbox下载 这是Docker Toolbox的下载链接,找个最新的下就好了. 阿里云开源镜像站资源目录 2、Docker Toolbox安装 下载之后点击exe文件点击安装,然后一直点next就行了. 安装之后,点击的时候如果显示快捷方式不对显示查找git.bash…

[附源码]Python计算机毕业设计Django贵港高铁站志愿者服务平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

GBase 8c 管理平台(一)-部署配置

GBase 8c 管理平台 GBase 8c 提供管理平台对数据库集群进行管理,用户可以通过管理平台提 供的图形化界面进行集群的部署配置、系统管理、运维监控、 告警管理、 备份恢 复、数据同步、数据加载等操作。 部署配置 GBase 管理平台提供可视化的界面,实现…

Hadoop大数据系统架构(深入浅出)

目录1. Hadoop生态体系2. Hadoop集群硬件架构3. Hadoop体系分层功能架构参考资料导读: 从资源管理角度来看,当前的大数据系统架构主要有两种:一种是 MPP数据库架构 ,另一种是 Hadoop体系的分层架构。这两种架构各有优势和相应的适…

[附源码]Python计算机毕业设计SSM开小灶线下管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]Python计算机毕业设计Django驾校预约管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Jmeter 命令式执行脚本,使用windows bat 命令进行全自动静默获取token

系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录系列文章目录前言一、创建bat文件二、把bat文件,放在jmeter目录里面三、效果更新日志前言 有这样的一个需求场景,我需要用jmeter去自动获取token,然后把这个tok…

将Perl5代码迁移到Perl6上的解决方案

无论您是一个正在将Perl 5代码转换为Perl 6并遇到一些问题的程序员,还是您只是想了解如果您尝试将Perl 5程序移植到Perl 6可能会发生什么,本文应该回答您的问题。 Perl 6文档已经包含了大部分(如果不是全部)你需要的文件要解决将Perl 5代码迁移到Perl 6…

[附源码]Python计算机毕业设计Django会议室预定管理APP

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

FileRun多功能网盘的搭建

本文完成于国庆期间; 什么是 FileRun ? FileRun 是一个自托管的 Google Drive 替代方案。它是一个功能齐全的基于 Web 的文件管理器,具有易于使用的用户界面。 FileRun 免费版 可以用于商业和非商业用途,默认提供 5 个用户帐户。注册安装后可…

Spring框架(一):SpringBean的生命周期以及循环依赖和处理方式

这里写目录标题前言Spring的生命周期循环依赖三级缓存处理流程Spring Ioc容器实例化 流程前言 痛定思痛,主要问题出现在自己雀氏不熟悉框架基础、一些面试题,以及sql的使用淡忘了。 本章节的开始是对于过去的重新回顾,当然,我也会…

该如何选择合适的服务器,保证服务器的安全

在服务器遇到大量进犯,不方便转移时,很多运营网站或许游戏的会挑选接入云防护产品, 服务器在遭受进犯形成服务器瘫痪无法正常的运行,遇到这样的状况都会挑选有较高防护的服务器器,可是有时分服务器的数据搬迁有比较麻…

如何将音乐导入iphone手机,怎么将歌曲导入到iphone

如何将音乐导入iphone手机?把音乐导入苹果手机,主要有2种方法:一种是使用iTunes把音乐导入iPhone,另一种是通过专门的工具将iPhone不支持的音乐格式导入到手机中。我们一起来了解一下。 方法一、使用iTunes将音乐传输到iphone iT…

【Spring框架】超详细的AOP技术详解,你真的不来看看吗?

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

led灯什么牌子的质量好又耐用?2022性价比高的led护眼灯品牌推荐

大家生活中可能都接触到了不少的人造灯光,不知道有没有留意过,其实大部分都是使用led灯珠作为发光源呢,这是由于led灯的确有很多传统台灯所不具备的优势。 Led作为一种固态半导体元件,具有自发光的特性,可以直接将电能…

【元宇宙欧米说】探讨Web3领域的文化交汇点

在Web3的加持下,如何融合各产业建立文化新生态?电影、音乐、文学、艺术等如何更好地融汇碰撞创造新生机? 12月6日下午三点,ⁿᵒ 3.14创始人Crystal将以“探讨Web3领域的文化交汇点”为题,与大家共同探讨Web3时代的文化…

[附源码]Python计算机毕业设计Django基于JavaWeb的学校社团活动管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

领悟《信号与系统》之 连续系统的频域分析

连续系统的频域分析一、连续系统的频域分析1. 系统函数与系统的频域分析1. 理论分析2. 频域分析法求解系统零状态响应步骤2. 无失真传输一、连续系统的频域分析 一个系统的重要指标就是求系统函数,用系统函数来表征这个系统得特性,系统函数其实系统对外…

【毕业设计】深度学习OCR中文识别系统 - opencv python

文章目录0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后0 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始,各个学校对…

Android ViewPager2 + Fragment + BottomNavigationView 联动

Android ViewPager2 Fragment BottomNavigationView 联动 本篇主要介绍一下 ViewPager2 Fragment BottomNavigationView , 上篇中把ViewPager2和Fragment 联动起来了, 本篇主要把 BottomNavigationView集成进去 概述 BottomNavigationView 是一个底部导航控件, 现在要实现…