• 2307阅读
  • 31回复

Qt制作局域网即时通讯软件 [复制链接]

上一主题 下一主题
离线kongdemin
 

只看楼主 倒序阅读 楼主  发表于: 2019-12-24
Qt制作局域网即时通讯软件
       利用Qt制作的局域网即时通信软件,可实现文本信息、表情包、图片、文档等的传输功能。界面风格模仿的Tim,所以本软件取名为Timi,tim的mini版本。
  1. 登录界面:使用之前做的登录界面,后续修改。原因是没找到好的素材(不会美工),有会美工愿意提供素材的请联系。
  2. 文本信息发送:气泡效n果,文本信揭秘那息可自动换行,并且文本信息可选择/可复制。
  3. 发送图片功能:通过udp发送图片,增加图片浏览器,双击图片可以查看详细信息。
  4. 截图功能:可实现类似微信QQ等截图功能。
  5. 表情包功能:发送表情包,表情包下载于网络上的QQ表情包。
  6. 文件发送功能:实现文件传输功能,样式模仿微信样式,由选择文件可以看到。
  7. 软键盘:调用软键盘,实现中文/英文、数字和符号等输入功能。
  8. 上线/下线广播通知:实现上线/下线提示功能。
  9. 收到消息提示功能:接受到消息,在头像左上角显示红色提示信息。

1、登录界面

      基本登录界面,登录有托盘提示信息,如下图右下角信息及托盘。


2、主界面
         主界面样式模仿Tim,实现无边框拖拽、放大、缩小、圆角、阴影、最大化、最小化、托盘等基本功能。
         主界面主要由标题栏、左侧通信录、右侧的在线/离线栏、信息显示窗口、输入工具栏、信息输入窗口等几部分组成。



3、文本信息发送/接受
        之前有通过js+html实现过气泡聊天效果,样式确实不错,不过太占内存了,在此进行改良,通过绘制实现,其中遇到过很多坑,比如绘制好后如何实现自动换行,并且中文/英文/数字换行都可以;再比如绘制的信息如何选择,发送的信息可以复制;还有就是发送图片时发送的图片过大或过小如何显示;发送文件应该如何显示,发送文件时发送样式怎么好看;发送表情包及gif图片如何做到动画播放的效果等等。
         发送文本信息功能,样式为气泡效果,文本信息可以自动换行,文本信息可以选择及复制。
         无论中文/数字/字母/符号都可自动换行,自动换行写了好几天。根据窗口大小,聊天信息自适应大小。




4、发送图片功能
       通过选择图片进行发送,并增加了图片浏览器功能,可以查看图片详细信息,并且可以打印、下载、放大、缩小、还原、文件位置等功能。


       同样也实现了图片拖拽或复制到编辑窗口,可以同时发送多个图片。
       期间遇到的问题是如何显示图片过大或过小的情况,根据文件大小进行缩放。图片浏览器也需要此功能,如果发送常规不是特别大的图片好显示,如果特别大就会出现问题,包括文件进行缩小、放大、还原。
       图片放大,超过图片浏览器大小,目前可以通过键盘上/下/左/右键可以移动,通过鼠标拖拽实现图片移动还未实现,后续会将此功能加上。




5、截图功能
       常规截图功能,类似微信的功能(功能不全,后续会添加),包括截图后图片左右旋转、保存到本地、取消、和保存到剪切板,点击对勾后可以到处进行粘贴。
       微信截图功能还是比较完善的,包括再绘制、重新选择区域等效果。这些效果在之前写的电子白板画图软件中有介绍,后续会将这写功能加上。

6、发送/接受表情包
       表情包源自于网络下载,可以看到发送背景为蓝色看到有白色边框,这不是bug就是素材不好,有好点的gif表情包方便时可以发给我一份。
       发送表情包主要解决的就是表情包选择框的显示/隐藏问题、表情包实现动画效果。


7、发送/接受文件
       发送文件样式模仿的是微信,之前想过类似钉钉、QQ、Tim等,最终觉得微信的还是比较不错的,同时可以发送多个,样式和微信一样,这里没录制具体发送,可以翻看微信的。发现电脑版微信自带表情包是静图,之前都没发现。
       同时增加了查看文档详细信息功能,双击文件发送聊天信息,可以显示文档详细信息,单击文档图标跳转到文档具体位置,方便快速定位到文件位置。
       发送文件通过tcp实现,自测发送3g的大文件无压力,不过同时发送多个大文件无亲测。这里设计的不是特别好,会着重改进此处功能。还有就是发送文件进度条显示问题,获取发送进度容易,如何一个显示效果我还没想好,后续慢慢改进吧。





8、软键盘
       软件盘的实现如下功能,之前博客也写到了,软键盘皮肤可以更改的,同样字符库可以选择google的。软键盘在嵌入式环境用的比较多,win环境下没什么卵用吧。
       输入框工具栏还有其他功能需增加暂时未想好,欢迎大家提供意见,让功能更加完善。

9、上线/下线通知

通讯录采用QQ样式 ,展现用户头像,用户名,ip地址。后续增加签名效果。这里的头像都是固定样式,暂时未实现用户自定义功能,最近在整理上传头像及编辑头像功能,像QQ那样进行头像图片裁剪的效果,实现后再更新此功能。
       通信录这里暂时隐藏了群聊功能,暂时还未想好群聊应该怎么展现,群聊样式该如何,想好后也会将此功能增加上。
        在上下线提示栏能可以看到,上线颜色为蓝色并标记为online,下线颜色为灰色并标记为offline。这个显示效果也是想了好久,主要是因为这里未采用服务器,未能实现离线发送,所以要体现出接受方的在线状态,借鉴的效果不多,可能有在右下加弹出窗口的效果,好像360弹出的广告一样,像我这种360都不安装的人,这效果肯定接受不了。有好点的效果欢迎大家提议,能提供美工素材更是感激不尽。
      上下线没有录制两台电脑实际视频,最多试过5台电脑上下线效果,实测没问题。欢迎下载使用,可亲测。
10、收到消息提示功能
       实现了收到消息提示的功能,提示方式如下面所示。收到消息后会在头像的左上角标记红色圆点。同样接受不了360似的右下角弹广告,奈何也没想到更好的效果。提供素材吧。
      头像图片来自网络,不好看,奈何不会美工,欢迎提供好看点的头像。

11、项目构建
        整个项目代码如下,可以根据命名看到每个模块的实现,整个项目未使用ui,所有界面效果都是通过代码painter 绘制实现。后续会将各个模块具体实现方法分享给大家。
        整个项目代码于2019年12月份每个不眠的深夜一行一行敲的。


  下载地址
       大家可下载使用,顺便将使用当中的建议/意见及Bug反馈给我,使软件更加完善。
       主界面有我的联系方式,或者在此留言也可以。
       有需要或者想做局域网即时通讯软件的可以联系我。
       整个软件是我自己设计和开发的,能力有限,如存在不妥之处,欢迎大佬们指正。如果觉得不错的就点个赞吧。

原文链接:https://blog.csdn.net/qq_15094525/article/details/103636367


4条评分好评度+1贡献值+1金钱+10威望+1
20091001753 好评度 +1 - 2019-12-24
20091001753 贡献值 +1 - 2019-12-24
20091001753 威望 +1 - 2019-12-24
20091001753 金钱 +10 - 2019-12-24
在线nigoole

只看该作者 1楼 发表于: 2019-12-24
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线songhuirong1

只看该作者 2楼 发表于: 2019-12-24
非常不错
离线xiaoke123

只看该作者 3楼 发表于: 2019-12-24
离线xzp21st

只看该作者 4楼 发表于: 2019-12-24
牛逼
离线weichangxian

只看该作者 5楼 发表于: 2019-12-24
    
离线305750665

只看该作者 6楼 发表于: 2019-12-24
    
雨田哥: 群号:853086607(收费群)
专业定制桌面应用软件(QQ: 3246214072)

刘典武-feiyangqingyun:专业各种自定义控件编写+UI定制+输入法定制+视频监控+工业控制+仪器仪表+嵌入式linux+各种串口网络通信,童叟无欺,量大从优,欢迎咨询购买定制!QQ:517216493

QtClub: http://cms.heilqt.com/   教主:寒山-居士
离线boylebao

只看该作者 7楼 发表于: 2019-12-24
    
为加快Qt开发而造轮子。
离线沉默小ai

只看该作者 8楼 发表于: 2019-12-24
大佬!期待放出思路,也希望QT相关越来越好
离线snolkmg

只看该作者 9楼 发表于: 2019-12-25
离线nes9011

只看该作者 10楼 发表于: 2019-12-25
下载地址呢~~
离线coolee

只看该作者 11楼 发表于: 2019-12-25
必须鼓励支持!
离线kongdemin

只看该作者 12楼 发表于: 2019-12-25
回 nes9011 的帖子
nes9011:下载地址呢~~ (2019-12-25 09:21) 

https://pan.baidu.com/s/1aqHBWd2a9MeTHgWLwnrPAw
tb5v
离线kongdemin

只看该作者 13楼 发表于: 2019-12-25
回 沉默小ai 的帖子
沉默小ai:大佬!期待放出思路,也希望QT相关越来越好[表情] [表情]  (2019-12-24 21:46) 

各个模块详细设计随后整理好发出,欢迎指正
离线liudianwu

只看该作者 14楼 发表于: 2019-12-25
大佬,牛逼!
专业各种自定义控件编写+UI定制+输入法定制+视频监控+工业控制+仪器仪表+嵌入式linux+各种串口网络通信,童叟无欺,量大从优,欢迎咨询购买定制!你正好需要,我正好专业!QQ:517216493 微信:feiyangqingyun Email:feiyangqingyun@163.com
群号:853086607(Qt交流大会,雨田哥群,不定期上传作品,解答作品中相关问题!) 312125701(QtQML多多指教群) 46679801(Qt开发技术交流群-5000人大群)
离线圣域天子

只看该作者 15楼 发表于: 2019-12-25
开源吗?
开源的话我就在我的服务器上加个聊天模块支持你变成internet上的聊天软件
离线yyzq

只看该作者 16楼 发表于: 2019-12-25
离线z_墨脱

只看该作者 17楼 发表于: 2019-12-25
牛逼了大佬
离线kongdemin

只看该作者 18楼 发表于: 2019-12-28
回 圣域天子 的帖子
圣域天子:开源吗?
开源的话我就在我的服务器上加个聊天模块支持你变成internet上的聊天软件 (2019-12-25 13:05) 

那最好不过了
离线kongdemin

只看该作者 19楼 发表于: 2019-12-28
回 liudianwu 的帖子
liudianwu:大佬,牛逼![表情] [表情]  (2019-12-25 13:03) 

向大佬学习
离线kongdemin

只看该作者 20楼 发表于: 2019-12-28
回 z_墨脱 的帖子
z_墨脱:[表情] 牛逼了大佬 (2019-12-25 15:12) 

共同进步
离线awfymwvf

只看该作者 21楼 发表于: 2019-12-29
楼主太厉害了,向你学习啊
爱好
离线kongdemin

只看该作者 22楼 发表于: 01-02
回 awfymwvf 的帖子
awfymwvf:楼主太厉害了,向你学习啊 (2019-12-29 20:39) 

共同进步
离线deandx

只看该作者 23楼 发表于: 01-03
大神代码开源吗,想学习下
离线crazy

只看该作者 24楼 发表于: 01-03
厉害
C/C++/Qt爱好者
邮箱:kevinlq0912@163.com
企鹅:2313828706
博客:http://kevinlq.com/
离线zllx1314

只看该作者 25楼 发表于: 01-07
刚下载了下 怎么登陆呀
离线shasidaran

只看该作者 26楼 发表于: 01-07
厉害厉害,全靠Painter绘,不知道维护起来怎么样
很多细节做得很好了
离线kongdemin

只看该作者 27楼 发表于: 01-07
回 zllx1314 的帖子
zllx1314:刚下载了下 怎么登陆呀 (2020-01-07 10:21) 

用户名:kongdemin
密码:mima
将setting/setting.ini中ip更改为本机ip
离线kongdemin

只看该作者 28楼 发表于: 01-07
回 shasidaran 的帖子
shasidaran:厉害厉害,全靠Painter绘,不知道维护起来怎么样
很多细节做得很好了 (2020-01-07 11:39) 

这就要看设计的是否合理,合理后期就好维护
离线kongdemin

只看该作者 29楼 发表于: 01-07
回 crazy 的帖子
crazy:厉害[表情] [表情]  (2020-01-03 22:23) 

共同进步
离线339889

只看该作者 30楼 发表于: 07-25
还有下载提供吗?学习下
离线chenke

只看该作者 31楼 发表于: 07-28
百度网盘下载没有了 可以在发一下下载链接吗?
快速回复
限100 字节
 
上一个 下一个