首页| 论坛| 消息
主题:Qt制作局域网即时通讯软件
kongdemin发表于 2019-12-24 12:44
Qt制作局域网即时通讯软件 利用Qt制作的局域网即时通信软件,可实现文本信息、表情包、图片、文档等的传输功能。界面风格模仿的Tim,所以本软件取名为Timi,tim的mini版本。
登录界面:使用之前做的登录界面,后续修改。原因是没找到好的素材(不会美工),有会美工愿意提供素材的请联系。
文本信息发送:气泡效n果,文本信揭秘那息可自动换行,并且文本信息可选择/可复制。
发送图片功能:通过udp发送图片,增加图片浏览器,双击图片可以查看详细信息。
截图功能:可实现类似微信QQ等截图功能。
表情包功能:发送表情包,表情包下载于网络上的QQ表情包。
文件发送功能:实现文件传输功能,样式模仿微信样式,由选择文件可以看到。
软键盘:调用软键盘,实现中文/英文、数字和符号等输入功能。
上线/下线广播通知:实现上线/下线提示功能。
收到消息提示功能:接受到消息,在头像左上角显示红色提示信息。
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。这个显示效果也是想了好久,主要是因为这里
下一页 (1/2)
回帖(38):
38楼:厉害!不错!
37楼:求软件用一下 2461799914@qq.com
36楼:来晚了,没看到源码,谁有发一份呢?757210198@qq.com

全部回帖(38)»
最新回帖
收藏本帖
发新帖