使用QPainter制作一个简易的相册

PlayImage

记得一键三连哦

  • 一个使用简单的QPainter绘图事件实现图片播放器的简易demo
  • 支持图片切换
  • 支持多路更新,自己扩展即可
  • 支持幻灯片播放
  • PlayImage自定义控件支持复用,对外提供updateImage和updatePixmap接口,对传入的image和pixmap进行图片更新
  • PlayImage控件支持多线程调用

遗留问题

  • 图片分辨率太低
  • 测试次数少,及其简易的学习demo

项目代码

MyDemo文件夹下的PlayImage

项目警告

  • 注:博主本人学习过程的分享,引用他人的文章皆会标注原作者
  • 注:本人文章非盈利性质,若有侵权请联系我删除
  • 注:联系方式Q:2950319782
  • 注:博主本人很菜,文章基本是二次创作,大佬请忽略我的随笔
  • 注:我会一步步分享实现的细节,若仍有问题联系我

项目引用

问题解决

开发环境

  • 系统:Win10
  • Qt:5.14.2
  • 编译器:qtcreator 4.11.1, minGW64
  • ffmpeg: 5.12

实现功能

  • 支持打开多种格式的图片

实现逻辑

项目实现

项目结构

项目思路

  • 要制作一款图像显示器的桌面软件,那么要先能把图片文件传入进来
  • 图片文件不可能是单一图像文件,也不可能是单个图片类型的文件,这里我们使用QFileDialog中的getOpenFileNames函数来获取图像文件路径的列表
  • 使用QStringList保存图像文件路径
  • 当加载出来图片的时候,页面默认显示第一张图片,只需要在选择图片的槽函数里,调用PlayImage的updatePixmap函数,把第一张图片的地址传入进去
  • 需要封装一个图片地址转QPixmap的函数
  • 下面来实现切换图片,需要维持一个图片索引值,默认从0开始
  • 先处理向后切换,为方便确定图片的索引,再维持一个图片总数值,再使用取余前后求图片索引值
  • 最后处理幻灯片自动向后播放的功能,再未点击开始播放前,停止播放应该不能被点击,设置一下属性,控制是否播放设置标志为Play,默认为true
  • 要延迟一会发送更新的信号,封装一个阻塞函数sleepMsec
相关推荐
拳里剑气34 分钟前
C++算法:多源BFS
c++·算法·宽度优先·多源bfs
ysa0510301 小时前
【板子】短序列dp(换成维护更小常数维度的dp)
c++·笔记·算法·板子
aramae3 小时前
C++ IO流完全指南:从C标准库到C++流式编程
服务器·c语言·开发语言·c++·后端
_wyt0014 小时前
c++里的族谱:树
c++·
@三十一Y4 小时前
C++:AVL树实现
c++
haolin123.5 小时前
类和对象(上)
开发语言·c++
ShineWinsu5 小时前
对于Linux:传输层协议UDP原理的解析
linux·c++·面试·udp·协议·传输层·计算机系统
LingzhiPi5 小时前
零知派ESP32--AS5600磁吸旋钮音量控制器
c++·单片机·嵌入式硬件
小保CPP5 小时前
OpenCV C++车型识别1-图像预处理
c++·人工智能·opencv·计算机视觉
库克克6 小时前
【C++】C++11 包装器function 与 绑定器 bind
开发语言·c++