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

使用QPainter制作一个简易的相册的更多相关文章

  1. 用XMLHttpRequest制作一个简易ajax

    概述 jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax. 需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览 ...

  2. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  3. iOS:制作一个简易的计算器

    初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再接再厉. // // ViewController.m // 计算器 // // Created ...

  4. 使用Windows Form 制作一个简易资源管理器

    自制一个简易资源管理器----TreeView控件 第一步.新建project,进行基本设置:(Set as StartUp Project:View/Toolbox/TreeView) 第二步.开始 ...

  5. Opencv探索之路(二十):制作一个简易手动图像配准工具

    近日在做基于sift特征点的图像配准时遇到匹配失败的情况,失败的原因在于两幅图像分辨率相差有点大,而且这两幅图是不同时间段的同一场景的图片,所以基于sift点的匹配已经找不到匹配点了.然后老师叫我尝试 ...

  6. 使用jQuery制作一个简易的购物车结算流程

    因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...

  7. 制作一个简易计算器——基于Android Studio实现

    一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...

  8. 通过JS制作一个简易数码时钟

    设计思路: 数码时钟即通过图片数字来显示当前时间,需要显示的图片的URL根据时间变化而变化. a.获取当前时间Date()并将当前时间信息转换为一个6位的字符串; b.根据时间字符串每个位置对应的数字 ...

  9. VC++ 制作一个简易的控制台时钟应用

    1.下载EasyX Library for C++ (http://www.easyx.cn/) 直接下载:EasyX_20151015(beta) EasyX 绘图库目前支持 Visual C++ ...

  10. java 用socket制作一个简易多人聊天室

    代码: 服务器端Server import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{ ...

随机推荐

  1. cesium加载gif图片(cesium篇.43)

    https://blog.csdn.net/QQ98281642/article/details/120214325

  2. DELPHI应用EXCEL(1)

    在介绍使用delphi控制excel之前前,我们首先需要了解关于EXCEL的几个基本概念:EXCEL应用程序.工作薄(book).工作表(sheet)以及单元格(CELLS): 首先,我们是打开exc ...

  3. Linux下发现一个高安全性的系统管理工具

    软件 AnySetup 主要功能 主要功能是对Linux操作系统下的基本配置进行管理.多种服务配置进行管理.安全配置进行管理等.如:操作系统的升级管理,软件包的安装.更新和卸载管理,软件仓库源的管理, ...

  4. Blazor前后端框架Known-V1.2.13

    V1.2.13 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Git ...

  5. OpenCASCADE 显示对象设置不可选中

    原有的选中模式代码: static Standard_Integer SelectionMode (const TopAbs_ShapeEnum theShapeType) { switch (the ...

  6. 微信小程序 setData accepts an Object rather than some undefined 解决办法

    问题 setData accepts an Object rather than some undefined setData接受一个对象而不是一些定义 让我猜猜, 你一定是在加载index页面(首页 ...

  7. 线段树hdu-4027

    Smiling & Weeping   ---- 姑娘,倘若,我双手合十的愿望里有你呢 Problem Description A lot of battleships of evil are ...

  8. HTML一键打包APK工具最新版1.9.2更新(附下载地址)

    HMTL网址打包APK,可以把本地HTML项目, Egret游戏,网页游戏,或者网站打包为一个安卓应用APK文件,无需编写任何代码,也无需配置安卓开发环境,支持在最新的安卓设备上安装运行. 打包软件会 ...

  9. Kruskal重构树 学习笔记

    Kruskal 重构树 最大生成树将部分内容倒置即可 回顾:Kruskal 基本信息 求解最小生成树 时间复杂度:\(O(m \log m)\) 更适合稀疏图 算法思想 按照边权从小到大排序 依次枚举 ...

  10. jenkins更换国内插件源

    sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' ...