Qt 使用QPropertyAnimation动画效果的图片浏览器

文章目录

      • 效果图
      • 功能点
      • 代码解析
        • 图片切换显示与动画效果
        • 图片缩放
      • 总结

效果图

在这里插入图片描述

功能点

  1. 加载指定路径下的所有图片并显示
  2. 滑动滑动条查看指定图片,也滚轮切换图片
  3. 滑动条缩略图加入动画效果
  4. 图片可以进行缩放移动查看

代码解析

  • 整体来说相对,显示图片的是一个自定义的QLabel,缩略图是很多QLabel加入到一个QScrollArea滑动条中,使用QPropertyAnimation即可加入的动画效果。
图片切换显示与动画效果
  • 展示指定图片时,将图片名传入,imageLabel重新加载指定图片。计算出图片在滑动条的中间位置,并使用QPropertyAnimation进行属性的设置从而达到一种动画效果。
  • QPropertyAnimation怎么用自行百度,简单来说就是可以给QT对象任意属性设置平滑的动画。
void ImageBrowser::showImage(const QString &filename)
{QPixmap pixmap(dirname + filename);imageLabel->resert();imageLabel->setPixmap(pixmap.scaled(400, 400, Qt::KeepAspectRatio));// 动画效果,使选中的缩略图居中QScrollBar *scrollBar = scrollArea->horizontalScrollBar();int targetValue = labels[currentImageIndex]->geometry().center().x() - (scrollArea->width() / 2);// 创建动画并执行QPropertyAnimation *animation = new QPropertyAnimation(scrollBar, "value");animation->setDuration(1000);animation->setStartValue(scrollBar->value());animation->setEndValue(targetValue);animation->start();// 移除之前选中的缩略图的边框for (auto label : labels){label->setStyleSheet("");}// 为当前选中的缩略图添加边框auto currentThumbnail = labels[currentImageIndex];currentThumbnail->setStyleSheet("border: 4px solid lightskyblue;");
}
图片缩放
  • 略,拉取源码查看

总结

  • 知识理应共享,源码在此。
  • 这个案例相对简单,切换图片使用的是滚轮,当然也可以使用按钮。后续也可以加入预览gif图片的功能,路径是写死的这也很好改。。。

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

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

相关文章

Apache Paimon实时数据糊介绍

Apache Paimon 是一种湖格式,可以使用 Flink 和 Spark 构建实时 数据糊 架构,用于流式和批处理操作。Paimon 创新地将湖格式和 LSM(日志结构合并树)结构相结合,将实时流式更新引入湖架构中。 Paimon 提供以下核心功能: 实时更新: 主键表支持大规模更新的写入,具有非常…

LeetCode 热题 100 | 动态规划(一)

目录 1 70. 爬楼梯 1.1 基本思路 1.2 官方题解 2 118. 杨辉三角 3 198. 打家劫舍 菜鸟做题,语言是 C 1 70. 爬楼梯 核心思想:把总问题拆解为若干子问题。 总问题:上到 5 楼的方式有多少种子问题:上到 4 楼的方式有多…

Oracle常用sql命令(新手)

1、备份单张表 创建复制表结构 create table employeesbak as select * from cims.employees 如果只复制表结构,只需要在结尾加上 where 10 插入数据 insert into employeesbak select * from cims.employees 删除一条数据 delete from…

【Servlet】服务器内部转发以及客户端重定向

文章目录 一、服务器内部转发:request.getRequestDispatcher("...").forward(request, response);二、客户端重定向:response.sendRedirect("");三、服务器内部转发代码示例四、客户端重定向代码示例 一、服务器内部转发&#xff1a…

小象超市(原美团买菜) 的大屏图表

文章目录 概要技术细节技术名词解释小结 概要 20203年12月1日,美团旗下自营零售品牌“美团买菜”升级为全新品牌“小象超市”。 ,“小象超市”坚持美团自营零售模式,通过在社区设立的集存储、分拣、配送为一体的便民服务站,为社区…

go之web框架gin

介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/g…

【测试篇】接口测试

接口测试,可以用可视化工具 postman。 如何做接口测试?? 我们可以先在浏览器中随机进入一个网页,打开开发者工具(F12)。 随便找一个接口Copy–>Copy as cURL(bash) 打开postman 复制地址 进行发送。 …

R统计实战:详解机器学习Adaboost的操作步骤与应用

一、引言 机器学习是人工智能的核心领域之一,其重要性体现在其能够从数据中自动学习并改进的能力上。在实际问题中,机器学习已经被广泛应用于各个领域,包括但不限于金融、医疗、电子商务、社交网络等。例如,在金融领域&#xff0c…

Java SpringBoot中优雅地判断一个对象是否为空

在Java中,可以使用以下方法优雅地判断一个对象是否为空: 使用Objects.isNull()方法判断对象是否为空: import java.util.Objects;if (Objects.isNull(obj)) {// obj为空的处理逻辑 }使用Optional类优雅地处理可能为空的对象: impo…

Node.js知识点总结:从入门到入土

Node.js知识点总结:从入门到入土 node.js概念说明与相关知识储备了解基本概念:JavaScript基础能力:安装和设置Node.js环境:核心能力模块:重点能力-异步编程:使用npm管理依赖:构建Web应用&#x…

安全架构设计理论与实践相关知识总结

一、安全架构概述 常见信息威胁介绍: 1. 信息泄露:信息被泄露或透露给某个非授权实体 2. 破坏信息完整性:数据被非授权地进行增删改查货破坏而受到损失 3. 拒绝服务:对信息会其他资源的合法访问被无条件的组织 4. 非法使用&#x…

【数据结构】顺序表的动态分配(步骤代码详解)

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:数据结构 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

某盾滑块拼图验证码增强版

介绍 提示:文章仅供交流学习,严禁用于非法用途,如有不当可联系本人删除 最近某盾新推出了,滑块拼图验证码,如下图所示,这篇文章介绍怎么识别滑块距离相关。 参数attrs 通过GET请求获取的参数attrs, 决…

Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中,开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统,与 Windows 或 MacOS 并驾齐驱,尤其在服务器和开发环…

时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序…

单元测试——Junit (断言、常用注解)

单元测试 Junit单元测试框架 使用 断言测试 使用Assert.assertEquals(message, 预期值, 实际值); 这段代码是用于在测试中验证某个方法的返回值是否符合预期。其中,"方法内部有bug"是用于在断言失败时显示的提示信息。4是预期的返回值,index…

买了云服务器不会用?教你使用京东云!

1. 前言 最近出现了许多云服务器的活动,由于活动期间优惠的价格、极高的性价比,因此,无论是企业,还是私人用户;无论是云服务器玩的溜的老手,还是新手小白都直接冲了起来!但是对于一些还未使用过…

数字未来:探索 Web3 的革命性潜力

在当今数字化的时代,Web3作为互联网的新兴范式正逐渐崭露头角,引发了广泛的关注和探讨。本文将深入探索数字未来中Web3所蕴含的革命性潜力,探讨其对社会、经济和技术的深远影响。 1. Web3:数字世界的下一个阶段 Web3是一个正在崛…

AWS入门实践-S3对象存储的基本用法

AWS S3(Simple Storage Service)是亚马逊云服务提供的一种高度可扩展、安全且经济高效的对象存储服务。它允许用户在任何位置存储和检索任意数量的数据,非常适合存储和分发静态文件、备份数据以及作为数据湖的存储层。 一、S3上传和下载文件(AWS门户) …

Excel列匹配VLookUp功能使用

生活中很多关于excel多列数据进行匹配计算等场景,其中最常用的一个函数就是VLookUp了,下面直接上图: 得到结果如下: 得到结果如下: 注意: 1.在需要把计算完的数据粘贴到另一列或者另个sheet时,复制后,不要直接ctrlv粘贴,这样会把计算公式粘贴到对应的列.正确做法是:右键粘贴,选…