使用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
相关推荐
雾岛听蓝6 分钟前
理解C++多态
开发语言·c++
朔北之忘 Clancy6 分钟前
第二章 分支结构程序设计(2)
c++·算法·青少年编程·竞赛·教材·考级·讲义
小屁猪qAq11 分钟前
设计模式的基石
开发语言·c++·设计模式
明洞日记1 小时前
【CUDA手册004】一个典型算子的 CUDA 化完整流程
c++·图像处理·算法·ai·图形渲染·gpu·cuda
燃犀知不可乎骤得1 小时前
MFC学习记录
c++·学习·mfc
星火开发设计1 小时前
C++ 运算符全解析:算术、关系、逻辑与位运算
java·开发语言·c++·学习·位运算·知识·操作符
Emilin Amy1 小时前
【C++】【STL算法】那些STL算法替代的循环
开发语言·c++·算法·ros1/2
天赐学c语言2 小时前
1.16 - 二叉树的中序遍历 && 动态多态的实现原理
数据结构·c++·算法·leecode
fpcc2 小时前
跟我学C++中级篇—std::is_swappable手动实现
c++
卜锦元2 小时前
EchoChat搭建自己的音视频会议系统01-准备工作
c++·golang·uni-app·node.js·音视频