当前位置: 首页 > news >正文

QT项目----电子相册(6)----总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 总结
  • 类功能介绍
    • 1.主窗口 mainwindow
    • 2.向导类Wizard
    • 3.目录树 ProTree 类
    • 4.目录树 ui 类 ProTreeWidget
    • 5.ProTreeThread 类
    • 6.OpenTreeThread 类
    • 7.PicAnimationWid 类
    • 8.PicShow 类


前言

提示:这里可以添加本文要记录的大概内容:
后面的播放列表和幻灯片的播放就先不说了 都是很简单的内容,后续有时间会补上,源码全部已经放入GitHub中
这里给项目做一个总结 说明各个类的功能,以及关联和使用情况


提示:以下是本篇文章正文内容,下面案例可供参考

总结

类功能介绍

1.主窗口 mainwindow

该类主要用来管理主窗口,包括菜单的显示与交互等。
基本功能包括:
(1)主界面显示为左侧的文件列表框和右侧的图片展示区,其内部包含目录树类和图片展示类的指针。
(2) 显示菜单项并将菜单项与点击逻辑关联。
(3)支持打开和创建项目操作。
(4) 通过map管理所有创建或打开的项目,对于创建项目时,采取的是建立指定文件夹,对于打开项目时,直接打开指定的文件夹。

2.向导类Wizard

当我们创建项目时,会按步骤提示用户操作,需要用到向导类。该类继承于QWizard,重写了done函数,保证用户操作完成时发送SigProSettings信号给目录树类ProTree。
向导类内部包含了两个向导页一个是项目属性设置页面ProSetPage,一个是确认页面ConfirmPage
ProSetPage页面可以输入项目名称和路径,也支持打开文件夹自动录入路径功能。同时支持录入过程中检测输入是否合法,包括路径是否已经存在,项目名称是否已经存在等。这部分功能通过重写isComplete函数实现逻辑判断。
ConfirmPage用来确认用户操作,用户可以选择取消,如果取消则中止创建项目流程。

3.目录树 ProTree 类

该类主要控制主界面左侧显示目录树,包括基于目录树的一些操作,功能包括如下

(1)接收向导类的SigProSettings信号,将项目添加至左侧目录区。
(2)支持导入文件操作,右键项目名称在弹出菜单选择导入文件会弹出导入文件夹对话框,选择要导入的文件即可。
(3)设置活动项目,设置为活动项目的条目会被指定为默认选中的项目,项目处于高亮并字体变粗。
(4)轮播图播放,当点击轮播图播放时会依次播放目录树下的每张图片。
(5) ProTree类内部管理了ui文件,ui文件中QTreeWidget被升级为我们自定义的ProTreeWidget类型。进而支持上述菜单操作。
成员函数和变量介绍:
(1)Ui::ProTree *ui 表示ProTree的ui类。
(2)AddProToTree 该函数和主界面发送的SigProSettings信号连接,在左侧创建目录文件夹。
(3)GetTreeWidget 该函数返回ui内管理的ProTreeWidget对象的指针。

4.目录树 ui 类 ProTreeWidget

该类继承于QTreeWidget类,用于实现目录列表,该类放在ProTree的ui文件里,将QTreeWidget升级为该类型,同时也可以响应主窗口发送过来的打开项目和创建项目信号。其功能包括如下:

(1)包括一个集合_set_path,防止重复导入相同项目,规则为根据路径和项目名组合生成的字符串是否已经在集合中,如果在则不插入目录树。
(2)支持右键点击item,生成弹出菜单,菜单包括导入文件,关闭项目,幻灯片放映以及设为启动项目等菜单项。
(3)根据主界面发送的导入或创建项目信号,执行导入逻辑和创建逻辑。因为导入和创建逻辑会占用cpu,为提升性能启动导入线程OpenTreeThread和创建线程ProTreeThread
(4)导入和创建项目时更新进度条对话框
(5)支持中途取消导入和创建项目
(6)支持双击条目显示图片,支持点击右侧显示区的切换按钮进行切换图片
(7)支持处理主界面发送的设置音乐请求

类成员说明如下:
(1)_set_path缓存目录树中的项目名。
(2)_action_import导入文件动作。
(3)_action_setstart设置活动项动作。
(4) _action_closepro关闭项目动作。
(5) SlotItemPressed右键点击的槽函数弹出菜单。
(6)_right_btn_item 缓存右键点击的item项。
(7)_active_item 缓存设置的启动项。
(8)_dialog_progress 导入文件时现实的进度对话框。

5.ProTreeThread 类

该类继承自QThread,因为创建项目后,导入图片文件时耗时较长,所以启动这个线程。该线程响应外界的中止消息,并根据copy文件的进度向进度对话框通知进度。
类成员说明如下
(1)_src_path文件源路径。
(2) _dist_path文件目的路径。
(3) _file_count表示已经复制的文件数
(4) 拷贝生成的目录树的当前节点的父节点。
(5) _root表示拷贝生成的目录树的根节点。
(6) _bstop表示是否停止。
(7)SigUpdateProgress表示更新进度的信号
(8)SigFinishProgress表示完成的信号。

6.OpenTreeThread 类

OpenTreeThread 和ProTreeThread类似,所以不再赘述。

7.PicAnimationWid 类

动画类,当点击左侧目录树选择播放幻灯片时,PicAnimationWid类负责播放动画
主要类成员和功能如下
(1)SetPixmap函数设置图片,设置当前播放和即将播放的图片。
(2) UpSelectPixmap 当点击左侧目录树item或者点击下方预览图时会触发该函数,用来更新播放的图片,进而切换播放的图片。
(3)paintEvent重写了喷绘函数,实现双缓冲绘图,播放第一张图片alpha为255,第二章图片alpha为0,然后慢慢将第一张alpha变为0,第二张变为255,进而实现图片的渐隐渐显效果。
(4)SlotStartOrStop 启动或停止动画的槽函数。
(5)SlideNext,SlidePre向前和向后切换动画的槽函数。
(6)TimeOut定时切换图片的槽函数。

8.PicShow 类

PicShow类主要是管理右侧显示区域的。包括点击按钮的渐变变化,以及切换图片的显示功能。
(1)ShowPreNextBtns用来实现按钮渐渐显示效果。
(2)SlotUpdatePic更新显示的图片。
(3)SlotSelectItem更新选中的item。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • C++名称空间
  • 介词:连接名词与句子其他成分的桥梁
  • VSCode通过SSH连接VMware虚拟机
  • JAVA---多态
  • 48变现干货:分销裂变方式提高销量
  • Go语言chan底层原理
  • 前端小练习————表白墙+猜数字小游戏
  • Python Cookbook-6.19 调用超类的__init__方法
  • QT对象树
  • pip安装包时网络不畅,替换国内PyPI镜像源
  • Seata TCC 实战笔记:从零搭建分布式事务 Demo (含源码)
  • Android 常用输入控件
  • 6.城市综合管廊工程
  • FastApi快速实践
  • 一键获取当前项目的所有文件结构并保存到文本文件
  • ​​工业机器人智能编程:从示教器到AI自主决策​​
  • 雅思听力--75个重点单词/词组
  • 在JSP写入Text文件方法指南
  • go语言实现用户管理系统
  • 【2025软考高级架构师】——2024年11月份真题与解析
  • 特朗普关税风暴中的“稳”与“变”:新加坡国会选举观察
  • 2类药物别乱吃,严重可致肝肾衰竭!多人已中招
  • AI世界的年轻人|研究不止于实验室,更服务于遥远山区
  • 洪纬读《制造三文鱼》丨毒素缠身的水生鸡
  • 2025上海车展圆满闭幕,共接待海内外观众101万人次
  • 政府效率部效果不佳?马斯克有意寻求支持,含糊表态部门未来