# T-chat **Repository Path**: java-lmh/t-chat ## Basic Information - **Project Name**: T-chat - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-17 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **架构介绍** ChatPage文件夹 包含子目录文件夹include src ui include文件夹用于存放头文件,已经设计好,代码实现在src里面实现具体的.cpp,.ui文件放在Ui这个文件夹,后面不再赘述 ChatPage.h:是聊天页面的主类,负责管理好友聊天列表和聊天窗口的切换与显示。它作为一个容器,整合了好友聊天列表和多个聊天窗口,处理聊天相关的核心逻辑。 信号方面 SendUserMessage:用于发送用户的文本消息。 resizeMainWindowSize:调整主窗口大小的信号。 ChatWindow.h:代表单个聊天窗口,负责显示聊天消息、处理用户输入和文件传输等操作。 信号方面: resizeMainWindowSize:调整主窗口大小的信号。 SendUserMessage:发送用户的文本消息。 DefaultWindow.h:是聊天页面的默认窗口,当没有聊天窗口打开时显示。 FriendChatList.h:负责显示好友聊天列表,处理好友列表项的添加、选择和点击事件。 信号: FriendChatItemChanged:当好友列表项被点击时发出的信号,用于切换聊天窗口。 FriendPage FriendInfo.h:用于显示好友的详细信息,目前仅包含一个显示好友头像的 QLabel。 FriendPage.h:是好友页面的主类。它负责管理好友信息显示区域(FriendInfo)和好友列表区域(FriendList)。 信号: userFriendList:用于传递好友列表数据。 createChatWindowSignal:触发创建聊天窗口的信号。 itemChanged:当好友项发生变化时发出的信号。 FriendList.h:用于显示好友列表 信号: createChatWindowSignal:触发创建聊天窗口的信号。 ItemChanged:当好友项发生变化时发出的信号。 Login login.h:用于实现登录窗口的界面和功能。 主要功能: 初始化登录窗口的界面,包括标题栏、用户头像、账号密码输入框、登录按钮和注册按钮等。 处理用户输入的账号和密码,发送登录验证信号给数据库管理类进行验证。 处理用户点击注册按钮的事件,弹出注册窗口。 处理登录验证成功和失败的信号,显示相应的提示信息。 处理窗口关闭事件,释放相关资源 RegisterUserAccount.h:用于实现注册窗口的界面和功能。 主要功能 初始化注册窗口的界面,包括标题栏、用户头像、用户名和密码输入框、注册按钮等。 处理用户选择头像的事件,将头像转换为字节数组。 处理用户输入的用户名和密码,发送注册信号给数据库管理类进行注册。 处理注册成功的信号,显示相应的提示信息。 处理窗口关闭事件,释放相关资源。 Other AddFriend.h:主要用于实现添加好友的窗口界面和相关功能。 Tchat.h:整个应用程序的主窗口类,负责管理和协调各个子模块的工作。 ChatNetworkManager.h:要负责处理应用程序与服务器之间的网络通信。(网络通信部分) ResourceFile 主要用于存放找到的素材,图片之类,配合resource.qrc导入进去 UserDataManager UserDataManager.h:主要负责与 MySQL 数据库进行交互,管理用户数据的存储、查询和更新等操作 直接导入 user_1.sql 不需要在额外设计 主要功能 初始化数据库连接,处理数据库的查询和更新操作。 检查用户是否存在,添加新用户关系,更新用户状态等。 发出各种信号,通知服务器数据库操作的结果。 其他文件 main.cpp负责主要的程序运行 Global.h\cpp为全局变量不需要修改,已经设置好 服务端方面 ClientWork.h:主要用于处理客户端的工作,如接收客户端的消息、处理客户端的登录和断开连接等操作。 主要功能 管理客户端的 TCP 连接,处理客户端的登录、好友申请、消息发送等操作。 与数据库交互,更新客户端的在线状态,查询用户信息。 发出各种信号,通知服务器处理客户端的不同事件。 TchatServer.h:用于管理服务器的整体操作,包括处理客户端连接和文件传输服务连接。 主要功能 初始化 TCP 服务器,处理新的客户端连接. 转发各种信号,通知服务器处理不同的客户端事件。 TcpServer.h:用于处理普通客户端的连接。 主要功能 监听普通客户端的连接端口,处理新的客户端连接。 发出 newClientConnected 信号,通知服务器有新的客户端连接。 UserDataManager.h:主要负责与 MySQL 数据库进行交互,管理用户数据的存储、查询和更新等操作 直接导入 user_1.sql 不需要在额外设计 主要功能 初始化数据库连接,处理数据库的查询和更新操作。 检查用户是否存在,添加新用户关系,更新用户状态等。 发出各种信号,通知服务器数据库操作的结果。 **项目简介** 一款模仿qq的聊天软件 **开发环境** vs qtcreator