首页 > 其他分享 >Qt实现一个电子相册

Qt实现一个电子相册

时间:2023-10-30 17:06:45浏览次数:31  
标签:Qt 实现 imgnum void 按钮 ui Dialog 电子相册 图片


一、要实现的功能

  1. 在窗口中可以显示图片,并且能够通过两个按钮进行图片的前进和后退的顺序切换。
  2. 有一个按钮,通过这个按钮可以从所存图片资源中随机选取一个图片进行展示
  3. 通过按钮可以控制图片自动轮播顺序切换的开始与停止,
  4. 显示当前系统的时间。

二、实现思路

可以使用标签组件QLabel来显示图片,需要主要的是图片的大小与Qlabel之间大小关系。图片显示载体的问题解决后,再思考图片资源的读取途径,由于图片的前后切换需要顺序的遍历图片资源,所以我们可以用顺序容器QList 来创建一个列表对象,将所需的图片的路径保存在该列表中,这样我们在找图片时就可以通过 QList 列表的下表的加加减减来进行顺序选择对应图片的路径,同时也可以随机产生一个列表下表随机选择一张图片。然后再考虑按钮点击和图片切换功能之间的绑定关系,很明显可以使用信号与槽来实现,自定义槽函数,槽函数中实现图片切换的对应功能,按钮触发自带的clicked信号,按钮信号与自定义槽函数绑定,这样就可以实现点击按钮切换图片的效果了。

对于图片的自动切换,可以通过定时器QTimer 来指定图片自动轮播的间隔时间,时间间隔一到就触发对应的图片切换槽函数。

显示当前的系统时间的话,可以通过QDateTime获取当前系统的时间,然后使用QLCDNumber组件来显示。

三、实现的基本步骤

由于界面不太复杂,没有多重界面之间的切换,所以再新建项目工程文件时,下面的这一界面中的基类选则可以为QDialog,同时为了方便界面各个组件的设计,可以勾选上下面的“创建界面”选项。

Qt实现一个电子相册_#include


界面布局:

Qt实现一个电子相册_c++_02


对于图片资源,为了较好的显示效果,我都将图片裁剪成了相同的大小,图片的添加过程如下:

  1. 找到图片资源,格式要求为jpg、png、bmp,不要选择过大的图片(分辨率、文件大小)。
  2. 更改图片名称,名称建议为全英文、下划线和数字组合,且英文全小写,数字不能开头。
  3. 把图片放置到工作目录中。
  4. 在Qt Creator中选中项目名称,鼠标右键,点击“添加新文件”。
  5. 按照下图所示进行操作。
  6. 在弹出的窗口中设置资源文件名称
  7. 在项目管理界面,直接点击完成。可以看到项目中多了一个.qrc的资源文件。
  8. 选中qrc文件,点击“添加前缀”。
  9. 再次点击添加里面的添加文件
    在弹出的对话框窗口中选中要添加的图片文件。添加成功后会在qrc文件中显示出来。
  10. 点击Qt Creater左下角的锤子

    标签:Qt,实现,imgnum,void,按钮,ui,Dialog,电子相册,图片
    From: https://blog.51cto.com/u_14458591/8095382

相关文章

  • Qt第六十六章:展示数据的标签
    目录一、效果图二、qtDesigner①拖出一个frame作为组容器并贴上背景样式②拖出主要的三个控件:frame、line、frame、label*2③固定大小并设置字体、布局一下 ④拷贝三份并水平布局一下⑤设置样式⑥调整布局三、ui文件四、代码 一、效果图二、qtDesigner①拖出一个frame作为组容器......
  • 一、Qt简介
    1.什么是Qt?Qt是一个基于C++的图形用户界面(GUI)开发框架,但图形用户界面并不是Qt的全部,因为Qt还包含了很多非图形化的开发功能:多线程、数据库、图像图形处理、音视频处理、网络通信、文件IO等。一方面Qt可以应用于纯软件的开发,很多业界知名的软件都是使用Qt开发的,例如:另一方面,由于Qt......
  • Qt第六十五章:自定义菜单栏的隐藏、弹出
    目录一、效果图二、qtDesigner三、ui文件如下:四、代码 一、效果图二、qtDesigner原理是利用属性动画来控制QFrame的minimumWidth属性。①先拖出相应的控件②布局一下 ③填上一些样式 相关QSSbackground-color:rgb(238,242,255);border:2pxsolidrgb(255,255,255);border......
  • uniapp实现路由拦截
    背景在APP中,跳转页面需要判断是否有权限跳转,比如是否登录。开发环境是TMUI+VUE3+TS,这难免有一些限制,在网上搜索后,发现简书网站有个博主写的链接正合我意,不过他的是JavaScript+uniapp原生开发,根据我的需求,自己稍微改了些。0x01复制代码简书博客链接:https://www.jianshu.com/p/b......
  • Tornado实现多线程/多进程的HTTP服务
    用tornadoweb服务的基本流程原文链接1.实现处理请求的Handler,该类继承自tornado.web.RequestHandler,实现用于请求的对应方法如:get,post等。返回内容用self.write方法输出。**2.实例化一个Application。**构造函数的参数是一个Handler列表,通过正则表达式,将请求与Handler对应起来......
  • 智慧供水管网漏损控制管理系统,实现故障告警及快速控制
    行业背景随着城市的快速发展和供水管网的延伸补全,供水管网漏损及水资源管理问题愈来愈引起重视。造成管网真实漏损的原因有很多,例如管体接口、阀门、管道等漏水,供压不平衡等,若不及时查出真实漏损并快速修复,就会造成严重的水资源浪费与路面塌陷等次生灾害,是水资源管理的重要内容。 ......
  • QTreeWidget 添加右键菜单
    有时需要为QTreeWidget的子条目添加右键菜单功能,主要有两种方案来实现:方案一该方案比较通用,通过为QTreeWidget建立信号槽,在接受itemPressed的信号时会被触发,然后判断当前是否为鼠标右键,若为鼠标右键则创建添加对应的菜单栏,并提供相应的功能。//1.QTreeWidget*tree为......
  • c#实现文件压缩的方法
    //实现一个压缩文件的方法publicstaticvoidCompressFile(stringsourceFilePath,stringzipFilePath){//如果文件没有找到,则报错if(!File.Exists(sourceFilePath)){thrownewFileNotFoundException(sourceFilePath+"文件不存在!");}//......
  • 56基于java的房屋租赁系统设计与实现
    本章节给大家带来一个基于java房屋租赁系统设计与实现,可适用于java租房网站java房子租用,房屋租用,租房管理系统,房屋预约系统,预约看房,房屋资讯,在线房屋信息管理系统等。引言经过调查,目前现代人的生活节奏加快,生活压力也在逐渐的增加,网络的发展给人们带来的便利,随着网上租房网站信......
  • c#实现文件压缩的方法
    //实现一个压缩文件的方法publicstaticvoidCompressFile(stringsourceFilePath,stringzipFilePath){//如果文件没有找到,则报错if(!File.Exists(sourceFilePath)){thrownewFileNotFoundException(sourceFilePath+"文件不存在!");}/......