首页 > 其他分享 >【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。

时间:2023-05-25 15:37:52浏览次数:52  
标签:QQ 界面 QT 登录 毕业设计 Fdog 优化 好友 客户端


【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_QQ通讯



文章目录

  • 一. 前言
  • 二. 模仿QQ通讯
  • 1. 介绍
  • 2. 图例



一. 前言

2019年9月来到泰州职业技术学院,从此,正式开启了我的代码求学之路。

2021年7月即将离开泰州职业技术学院,还有半个月的时间,从此,将离开校园,变成一个职场人。

早上醒来,班主任在群里通知后天要照毕业照,算起来也就不到两年的时间,你可能会好奇为什么怎么快,没错,我是一个大专生,才大二,标题开头的【毕业设计】,也可能仅仅是我幻想的毕业设计,学校从来都不需要什么毕业设计,而是对应为期一年的顶岗实习,6月份结束,我也要踏上去往南京实习的路程。

学校是不需要毕业设计,但是我觉得我还是应该做一个东西出来,来告诉自己这两年,不是躺过来的,也是可以写在简历上的项目。

学校5月份组织过招聘会,先是相关岗位的,是在我们院举办的,说是相关岗位,但是我是没看出哪里有相关岗位的,招什么客服,钣金工,测试,可能最最最沾边的也就是一个运维,一个企业宣传手册上面写着招开发工程师,我就投了一份简历,聊的也还可以,过了两天问面试结果,告诉我能力还可以,就是和他们的技术不搭,我也不知是不是推脱的话,之后我也是在同学那里了解到,好多同学连简历都投不进去,直接就说不招专科开发,这让我感受到满满的恶意,然后后面有一场全校的招聘会,说着是有几百个企业,但压根跟编程没什么关系。

好歹最后通过一个来招聘运维人员的推荐,参加了开发的面试,顺利通过,C++开发工程师实习。

之前写过的一篇总结:2020年度总结【有人看了还不信,那说明我还行。哈哈】,写了我获得的奖项,参加的获得,当过的学生会干部。

无论你在学校多么辉煌,其实这些在面试当中并起不了任何作用,在简历上面千万不要长篇大论你参加或者组织了什么活动,参加了什么学生会,尤其是我们程序员,面试官会感觉你就参加活动了,根本没有在敲代码,所以这些只需要一笔带过就好了,奖项的话,写几项你最得意的就好了,你在学校获得的奖项最大的收益可能就是换来的奖学金(我靠着这些奖学金撑过了这个学期)。

如果你简历上面写了项目,那么面试官大概率会问你关于项目的问题,所以项目经验才是你的核心竞争力,请用心经营你的项目,多往github上传代码。

然后毕业季也没什么可说的,还是重点说说我的”小玩意“吧,大约4000行的代码量,其实说多也不多,但是放在博文里面也挺多,就统统上传到github这个宝库了,这个小玩意是我到现在为止最用心的一个小项目,我不惜购买了一年云服务器,打算之后的时间继续优化代码,添加功能。

在这里想给大家提一些建议,大家要带着思考去写代码,而不是一股脑的一直写,如果你问别人如何学好编程,人家一定会说多敲代码,这里的多敲要带着自己的思考,可以想一想这段代码能不能优化,能不能把功能再细分,做成模块化的,怎么设计可以使以后添加功能时尽量不去修改以前的代码,如果不带着思考,永远都是流水账一类的写法,永远无法进步。


二. 模仿QQ通讯

Fdog即时通讯项目源码已整体打包上传至https://github.com/HuaGouFdog/FdogInstantMessaging,欢迎大家参考学习,有不明白的地方记得私聊我,如果对你有帮助的话,欢迎Star!

1. 介绍

基础六文:

Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。
Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。
Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。
Fdog系列(五):使用Qt模仿QQ实现登录界面到主界面,功能篇
Fdog系列(六):Qt实现客户端与客户端通过服务端进行互相通信

Fdog即时通讯,是我在四月份开始的,到现在差不多也两个多月了,之前有写过六篇基础文章,第六篇的时间在5月4号,我没记错的话,7号就开了招聘会,之后时间也一直在忙碌着找工作,6月份我才重新拿起来,所以耽搁了。尤其是第六篇:Qt实现客户端与客户端通过服务端进行互相通信,在网上能找到的资料很少,有想实现类似功能的小伙伴可以看看。

利用在校所学知识进行编写,主要包括网页端,客户端,以及服务端。

  1. 网页端主要使用html前端,java后端,使用Tomcat部署在腾讯云服务器上面,实习软件下载和账号注册等功能。
  2. 客户端和服务端是在window平台使用qt5.10进行编写,实习添加好友,好友聊天等功能。

备注:

相关软件版本:tomcat7.x,mysql7.x,centOS7.x

短信使用的是腾讯云的短信服务,其他几家的短信服务都需要企业认证,腾讯云不需要。

每个新用户注册腾讯云都有两个个月短信体验,我的体验已到期,现在无法正常发送短信,不要再再试注册了。

由于无法将服务器数据库密码等重要信息上传,所以下载下来的程序无法正常运行,这里只提供源码以及相关数据库字段。

目前github没有上传可执行文件(太大了,github又慢),如下载源码后无法编译,右击项目,重新构建即可。

Fdog网站:https://www.fdogcsdn.cn,pc端相应的可执行文件可以加我获取,首页左侧有官方二维码。

之前还有粉丝询问我都一个月了停更在第六篇不更新,不要急,它一直在成长,请给它一点时间。

2021.5.1 更新

  1. 完成基本的登录,客户端与客户端的通信,目前还无法实现好友添加

2021.5.28 更新

  1. 修复了服务端由客户端关闭顺序引起的崩溃
  2. 优化服务端界面ui
  3. 优化主界面ui
  4. 实现主界面登录状态切换和系统托盘登录状态切换
  5. 实现来消息时的头像闪动
  6. 实现右下角消息列表
  7. 主界面列表消息显示

2021.5.29 更新

  1. 修复一个好友多次发送消息导致打开多个窗口
  2. 优化好友列表样式
  3. 优化好友聊天窗口ui以及内容显示
  4. 实现任务栏显示聊天对象头像

2021.5.30更新

  1. 优化登录界面动态图,以及登录界面头像锯齿化问题
  2. 优化全局字体反锯齿,优化后字体平滑
  3. 优化分组按钮箭头展开闭合效果以及消息列表
  4. 优化右下角消息框ui

2021.6.1更新

  1. 实现好友添加,并自动更新好友列表
  2. 优化搜索好友界面ui

2021.6.4更新

  1. 优化Usersql类的代码,采用单例设计模式
  2. 优化部分函数更新写法,增加安全性,以及服务端功能优化
  3. 增加对当前用户登录状态的写入,包括在线,隐身,离开,勿扰,等等(后期将会在好友列表中显示列表好友状态)
  4. 增加了登录界面登录时的取消按钮,以及当密码错误时,显示密码错误界面,优化用户体验
  5. 修复无论是否连接服务器都可以登录到主机面,增加对服务器是否能连接的判断,以及当前网络环境的判断,同时增加界面显示
  6. 修复了之前点击关闭按钮,但是依旧无法调用析构函数导致后台存在进程,无法再次编译的问题

2021.6.8更新

  1. 优化对话ui,增加聊天气泡
  2. 优化列表颜色显示

2021.6.9更新

  1. 修复了当前聊天窗口显示在桌面,托盘头像依旧闪烁的BUG
  2. 增加了当前聊天窗口为非活动窗口时,来消息时的任务栏图标的闪烁
  3. 修复了发送消息导致信息列表重复出现好友以及发送方不显示消息列表的问题
  4. 修复了无限登陆的问题,规定同一账号在不同IP下可以互相挤掉对方,而在同一IP下只可以登录一个,并弹出提示框
  5. 修复了点击同一好友,无限弹出聊天窗口的问题

2021.6.11更新

  1. 修复了关闭登录窗口但是后台进程还存在的问题
  2. 修复了修改代码产生的诸多问题,优化整体流畅性

2021.6.13更新

  1. 优化聊天窗口逻辑
  2. 修复关闭主窗口导致程序异常结束的问题

2021.6.15更新

  1. 修复并完善某些功能,v1.0版完成。

这是第一个版本,之后也会有第二个,第三个版本,如果你也对此有兴趣,欢迎与我一起参与!


2. 图例

网页注册界面点击

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_客户端_02

pc登录界面,包括读取账号,删除账号,登录账号,密码问题,网络问题都使用了对应的ui界面。

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_QT_03


pc主界面,聊天窗口,还有右下角的头像闪动以及消息框。

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_QQ通讯_04


pc添加好友ui界面

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_客户端_05


数据库字段

【毕业设计】QT从入门到实战:实现模仿QQ通讯,也是在校的最后一篇博文。_QT_06


Fdog即时通讯项目源码已整体打包上传至https://github.com/HuaGouFdog/FdogInstantMessaging,欢迎大家参考学习,有不明白的地方记得私聊我,如果对你有帮助的话,欢迎Star!



标签:QQ,界面,QT,登录,毕业设计,Fdog,优化,好友,客户端
From: https://blog.51cto.com/u_14770531/6348217

相关文章

  • Qt窗口关闭和应用程序停止是否调用析构函数的一些说明
    这几天一直在模仿QQ做一个即时通讯软件,过程不是很顺利,表现在窗口关闭,应用程序依旧存在,应用程序异常结束,关闭子窗口,主窗口跟着关闭,所以总结了一些内容,方便日后获取。如果对这个项目有兴趣的话可以前往GitHub:https://github.com/FdogMain/FdogInstantMessagingmain函数中,在栈上创建的......
  • Fdog系列(六):利用Qt通过服务端进行客户端与客户端通信(资料少,建议收藏)
    文章目录一.前言二.正文1.客户端与客户端通信思路2.代码实现(1)服务端的实现(2)客户端的实现一.前言Fdog已写文章目录:Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。Fdog系列(三):使用腾讯云短信接口发......
  • 基于Qt的网络音乐播放器(五)实现歌词滚动显示
    文章目录1.思路和效果图2.歌词的解析与存储3.onDurationChanged()4.总结网络播放器系列:qt布局和样式表基于Qt的网络音乐播放器(一)添加音频文件,播放音乐,更新进度条基于Qt的网络音乐播放器(二)切换歌曲,调节音量,调节语速,暂停基于Qt的网络音乐播放器(三)通过酷狗音乐的api接口,返回json格......
  • Qt读取qss文件失败或qss不生效解决方案
            最近在写qt加载样式表的博文,发现qss文件要么打开失败,要么加载成功,但是不生效,经过一番搜索也是算解决了这个问题。读取qss失败:读取文件的方式有两种,一种是绝对路径,一种是相对路径://绝对路径C:\\Users\\fdog\\Desktop\\sheet.qss//相对路径./lib/sheet.qss出现错......
  • Qt父窗口与子窗口数据交互(用拾色器举例)
    文章目录一.效果图二.实现1.在子窗口中声明信号2.在主窗口中声明并实现槽函数,并进行信号与槽的绑定3.在子窗口中发送信号(emit),并完成其控件的相应4.在子窗口的构造函数中传入需要的主窗口数据一.效果图二.实现首先我们创建主窗口和子窗口,并拖动控件,完成基本界面。这里的布局以及......
  • Qt正则表达式类QRegExp(附检验小程序)
           在许多场景中,我们需要验证用户输入的数据是否有效,或者是查找并修改文本,或者是提取指定数据,为此,相对于Qstring的一些函数,QT提供了一个更加强大的类——QRegExp,使用函数配合正则表达式来操作字符串,QRegExp可以进行下面的操作,并附带检验小程序,可在文末下载。一.正则表达......
  • 基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)
    2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票!我的投票地址:点击为我投票文章目录前言1.获取歌曲搜索列表api接口2.获取单个歌曲详细信息包括歌词3.总结前言首先说明,本教程仅供个人学习,研究使用,禁止用于任何的商业和非法用途。(手动狗头)之所以要研究这个,是因为我想......
  • 【转载】vs设置qt应用程序logo
    1、下载一个ico,拷贝到主函数工程目录下 2、新建一个文件如logo.rc,内容如下:IDI_ICON1ICONDISCARDABLE“logo.ico”3、修改主函数工程文件Main.vcxproj在文件最后添加<ItemGroup><ResourceCompileInclude="logo.rc"/></ItemGroup> 4、生成工程后即可看到ex......
  • MQTT入门DEMO(Java语言)
    目录快速开始准备下载及安装第一次安装EMQX第一次运行EMQX客户端代码快速开始准备MQTT简介EMQX简介下载及安装第一次安装EMQX版本选择EMQX支持多种操作系统,请选择合适您的版本下载。下载地址:https://www.emqx.io/cn/downloads#broker在MicrosoftWindows下安装目前EMQX......
  • QTLtools 协变量文件说明(covariate)
    协变量格式如下所示:注意事项:缺失值用NA表示;接受定性和定量的协变量;定量协变量用数值型表示;定性协变量用非数值型表示,类似于上图的A,B,C。定量和定性的判断依据是有没有等级关系,比如年龄属于定量,比如地区属于定性。需要注意的是,只要是定性的变量,都不能用数值表示,不然会被当成......