在上章37.qt quick- 高仿微信实现局域网聊天V3版本(添加登录界面、UDP校验登录、皮肤更换、3D旋转),我们已经实现了:
添加登录界面、
UDP校验登录、
皮肤更换、
3D旋转(主界面和登录界面之间切换) 、
所以本章实现:
2、支持拖动和更改窗口大小、
3、可以单独聊天、也可以在聊天室所有人聊天、
4、支持收发gif表情包(支持粘贴复制)、
5、自动刷新当前好友在线人数等、
1.界面展示
界面布局如下所示:
界面截图如下所示:
效果图如下所示:
有点大,可能加载不了,不过已经上传到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); }