# ChatUI **Repository Path**: tsingfu/chat-ui ## Basic Information - **Project Name**: ChatUI - **Description**: 基于Qt5.x的仿QQ局域网通讯软件。 目前主要实现了单对单的文字通讯,文件传输,UI界面稍做美化······ - **Primary Language**: C++ - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-12-22 - **Last Updated**: 2024-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ChatUI #### 介绍 基于Qt5.x的仿QQ局域网通讯软件。
目前主要实现的功能有:
1. 单对单的文字、图片通讯(半成品) 2. 单对单的文件传输 3. 好友头像,网名的自动更新 4. 对于聊天记录,好友信息的数据库存储管理 5. 用户对好友信息和聊天信息管理 6. 聊天界面的简单美化(用户也可以自己尝试添加设置皮肤) 7. 好友上线、离线的简单提醒 8. 用户可以自行对个人信息及文件传输配置进行修改管理 #### 软件架构 1. 界面模块
目录window下文件实现
使用QtWidget和Qt设计师做界面设计,用qss做部分的界面美化(做的不好)
目前有主界面和聊天界面两个模块
用户双击具体的好友后创建与选中好友的聊天界面
界面之间用信号与槽进行通信
2. 通信模块
由目录network下MessageSocket类实现
使用QUdpSocket实现局域网通信
用户登录、退出时使用广播通知所有在线用户
在线用户收到用户登录消息后,使用Udp单播对登录用户发送响应登录信息(告知用户自己在线)
通过QUdpSocket单播进行通信,收到消息后发送对应信号
3. 文件传输模块
由目录network下FileReader类和FileSender类实现
使用QTcpSocket和QTcpServer实现文件传输功能
用户选择要发送的文件,发送或接收完成后通知用户
4. 数据存储模块
由目录likeDatabase下LikeDatabase类实现
使用Sqlite数据库对好友信息和聊天信息进行增、删、改、查
5. 配置管理模块
由目录config下GlobalConfig类实现
使用QStting对部分用户配置和软件配置进行存储和管理
#### 安装教程 1. 下载到本地后用QtCreator打开
2. 删除***ChatUI.pro.user***文件
3. 选中***ChatUI.pro***运行
4. 把***globalConfig.ini***文件复制到Debug目录下,再次运行,完成
5. 可以尝试自己写皮肤文件然后保存为后缀为***qss***的文件,然后在主界面上点击更换皮肤,选中自己的皮肤文件,查看效果,***testStyle.qss***是我的测试文件
#### 使用说明 收发图片需要在双方都打通聊天窗口时才可进行,因为没有接收的图片做本地存储。
因为通信使用Udp传输,并且没有增加消息验证和制发机制所以收发图片有时会产生错误!
![无人在线](appWindwoPhoto/mainWindow1.png) ![上线](appWindwoPhoto/mainWindow2.png) ![聊天窗口](appWindwoPhoto/chatWindow.png) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)