40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口)

在上章37.qt quick- 高仿微信实现局域网聊天V3版本(添加登录界面、UDP校验登录、皮肤更换、3D旋转),我们已经实现了:

添加登录界面、

UDP校验登录、

皮肤更换、

3D旋转(主界面和登录界面之间切换) 、

所以本章实现:

2、支持拖动和更改窗口大小、

3、可以单独聊天、也可以在聊天室所有人聊天、

4、支持收发gif表情包(支持粘贴复制)、

5、自动刷新当前好友在线人数等、

 

1.界面展示

界面布局如下所示:

40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口)

界面截图如下所示:

40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口)

效果图如下所示:

40.qt quick- 高仿微信实现局域网聊天V4版本(支持gif动图表情包、消息聊天、拖动缩放窗口)

有点大,可能加载不了,不过已经上传到bilibili了https://www.bilibili.com/video/BV1Ao4y1S7zX

由于代码量有点多,所以讲解重点的部分

 

2.Text中的gif管理

2.1 在Text中加入一个gif

// 添加一个gif void GifTextHandler::inset(QString fileName) { if (!m_documnt) return; QTextCursor cursor = QTextCursor(m_documnt->textDocument()); cursor.setPosition(m_cursorStart); if (m_cursorStart > m_cursorEnd) { cursor.setPosition(0); } else if (m_cursorStart != m_cursorEnd) cursor.setPosition(m_cursorEnd, QTextCursor::KeepAnchor); addMovie(fileName); // 通过QMovie加载一个gif QTextImageFormat imageFormat; imageFormat.setName(fileName); imageFormat.setWidth(m_width); imageFormat.setHeight(m_height); cursor.insertImage(imageFormat, QTextFrameFormat::InFlow); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzzdp.html