1.项目介绍
仿照新版QQ写的基于CS架构的仿腾讯QQ桌面应用。
开发环境与技术:Qt6.5.2,SQLite,UDP,TCP,单例模式,qss样式表。
2.实现功能
0.数据库设计
qq2user表存储用户的qq号,密码,昵称和头像。
qq2friend表存储qq号与好友qq号。一个qq号登录时显示该qq号的好友查这个表。
以qq号_好友qq号命名的表。存储与好友的聊天记录。
1.账号登录
登录界面去除自带的边框,重写鼠标点击和鼠标按压事件,实现点击任意位置都可以移动窗口。label头像显示成圆形。输入好qq号和密码后,点击radioButton同意“...协议”才可点击登录按钮。
登录查qq2user表,登录成功从获取登录的comboBox获取本次登录qq,信号和槽的方式传递给主要的widget界面,并且后来显示的widget与登录界面位置同步。
2.与单个好友UDP消息聊天
点击一个好友,会查询本qq与好友qq的以“qq号_好友qq号”命名的表,显示双方聊天记录,
头像和聊天气泡分别用QPushButton和QLabel。
对方未登录,发消息时会把聊天记录插入到双方“qq号_好友qq号”命名的表,从而实现对方登录时收到你发的信息。
对方以登录,udp传输聊天,双方实时发送接收信息,当然聊天记录同样会插入到双方“qq号_好友qq号”命名的表。
3.与单个好友TCP文件发送
点击文件按钮,显示文件对话框,选择文件发送。只有在双方都在线时才能互发文件,先把文件TCP发给服务器,服务器接收完后自动发给目标好友(好友自己点击才接收,不点击则不会接收,未实现,离线发文件未实现)。
3.演示图片
发图片不太直观,具体项目演示见【QT C++】仿照新版腾讯QQ_哔哩哔哩_bilibili