首页 > 其他分享 >使用QPainter制作一个简易的相册

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

时间:2023-11-27 15:56:01浏览次数:37  
标签:PlayImage 相册 简易 使用 图像文件 播放 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

实现功能

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

实现逻辑

  • image

项目实现

项目结构

  • image

项目思路

  • 要制作一款图像显示器的桌面软件,那么要先能把图片文件传入进来
  • 图片文件不可能是单一图像文件,也不可能是单个图片类型的文件,这里我们使用QFileDialog中的getOpenFileNames函数来获取图像文件路径的列表
  • 使用QStringList保存图像文件路径
  • 当加载出来图片的时候,页面默认显示第一张图片,只需要在选择图片的槽函数里,调用PlayImage的updatePixmap函数,把第一张图片的地址传入进去
  • 需要封装一个图片地址转QPixmap的函数
  • 下面来实现切换图片,需要维持一个图片索引值,默认从0开始
  • 先处理向后切换,为方便确定图片的索引,再维持一个图片总数值,再使用取余前后求图片索引值
  • 最后处理幻灯片自动向后播放的功能,再未点击开始播放前,停止播放应该不能被点击,设置一下属性,控制是否播放设置标志为Play,默认为true
  • 要延迟一会发送更新的信号,封装一个阻塞函数sleepMsec

标签:PlayImage,相册,简易,使用,图像文件,播放,QPainter,图片
From: https://www.cnblogs.com/kanhai1024/p/17859538.html

相关文章

  • 简易电路
     ......
  • 基于FFmpeg和Qt实现简易视频播放器
    VideoPlay001记得一键三连哦使用qt+ffmpeg开发简单的视频播放器,无声音视频解码使用的是软解码即只用CPU进行QPainter绘制每一帧图像,CPU占用过高简单易学,适合小白入门学习FFMpeg视频解析的基本API遗留问题视频播放时间的处理,基匀速播放的实现原理项目代码videoPl......
  • 一个用于多线程共享数据保护测试的简易游戏服务器代码
    #include<iostream>#include<thread>#include<list>#include<mutex>//一个线程负责从客户端读取用户的命令,放入一个队列中;//另一个线程负责从队列中读取命令并解析,假设用一个int变量代表一个命令。classA{public://这里无法模拟从网络接受命令的过程,我们......
  • 嵌入式GEC6818项目——电子相册(一)
    一、背景准备1、Linuxx相关命令学习①cd;②pwd;③cp;等shell命令的学习④rm:删除命令(针对文件指针),所以是不可恢复的(文件不可恢复,一定要慎用,特别是对重要文件)【删库命令】对目录操作时,需要添加-r参数2、关于GEC6818内核芯片:芯......
  • 刘金玉QT学习笔记:7-简易用户信息管理界面实现_实现用户信息增改
    1.同第六课方式在widget里连接并创建数据库。 2.通过QSqlQuery使用sql语句的第二种方法:-在不同的函数中都要使用->做成全局变量 3.表格网格控件tableview控件显示数据库的内容为表格行-ui拖出控件-qtableview控件通过QSqlQueryModel来渲染数据过程:1widget.h引入#i......
  • 刘金玉QT学习笔记:6-sqlite简易入门+QT结合使用
    //第一篇,测试一下1.Sqlite-linux自带-轻量级-关系型数据库2.安装-进入官网后点击Downloads-下载下图的两个zip,解压后把里面的文件放到C盘下自创一个sqlite的文件夹3.通过命令行使用sqlite3.exe来使用数据库-配环境变量作用:不用进入路径位置就可以打开(sqlite)4.基本......
  • 聊聊如何利用springcloud gateway实现简易版灰度路由
    前言前阵子时间和朋友聊天,他们有个sass微服务,因为之前拆分过细,导致服务不仅调用链路过长,而且浪费服务资源,他们后面做了服务合并的重构,并即将上线。他觉得上线不能直接把线上的租户都全切到重构版的sass微服务,而是需要实现如下的效果他就问我说,有没有啥开源平台可以快速支持,因为......
  • 简易聊天室
    server.js文件内容constws=require("ws");//导入websocket letser=newws.Server(fport:3000));//在端口3000创建服务器ser.on('connection',(client)=>//连接事件client.on("message",(message)=>//客户端发送消息事件ser.clients.forEach(c=>//遍历所有客户端c.se......
  • 使用Java写一个简易web服务器
    使用Java写一个简易web服务器来替代nginx功能。main:publicstaticvoidmain(String[]args){ServerConfigLoaderserverConfigLoader=Factory.serverConfigLoader();ServerConfigserverConfig=serverConfigLoader.getServerConfig();Htt......
  • 【Windows Server】利用Windows Server中的SMTP功能搭建简易的邮件传输服务
    介绍:SMTP(简单邮件传输协议)是一种服务,使电子邮件交换在互联网和本地网络。为了实现这一点,SMTP与邮件传输代理(MTA)进行交互,并确保消息到达预期的收件人。邮件服务器]和其他消息传输代理通常使用SMTP发送和接收电子邮件消息。在本文中,我们会演示如何在Windows上安装和配置SMTP服务......