文章目录

  • 1 私聊模式的设计与实现
    • 1.1 设计分析
    • 1.2 代码实现

1 私聊模式的设计与实现

1.1 设计分析

私聊模式:

  • 用户在聊天时能够指定消息的接收者。


对聊天界面进行如下改动:

简单的看一下Qt中的列表类QListWidget:

我们需要增加USER消息:

然后增加MSGP消息,设计如下:

MSGP消息处理函数的实现如下:

实现的过程中我们必须注意如下问题:

  • 区分发送的是公聊消息还是私聊消息:

    • 当用户列表中的用户被勾选,发送私聊消息,否则发送公聊消息。
    • 私聊消息的目标客户端必须包含发送者自身。

1.2 代码实现

客户端代码改动:

MainWin.h:

Main WinUI.cpp:


MainWinSlot.cpp:



服务端代码的改动如下:
ServerHandler.h:

ServerHandler.cpp:




参考资料:

  1. QT实验分析教程

私聊模式的设计与实现相关推荐

  1. 酷炫的深色模式APP设计模板|2020设计潮流趋势

    深色模式在这2年绝对是人所共知的一个设计风尚了,如今的深色模式 UI 设计已经深入到各个 不同的应用. 简单来说他是整个界面配色反转之后的效果,便于用户在深夜更轻松地浏览界面信息. 只不过在具体的设计 ...

  2. 关于SaaS平台中应对多租户模式的设计

    这几年,在公司尝试转型做产品.所以引入了很多的产品的理念.不管是对产品的定义,还是针对产品的管理,以及摸索产品的落地等等.我之前更多的是接触的ToB端,所以想必也猜到了是一个SaaS模式的产品.其实, ...

  3. 浅析U.2接口NVMe SSD双端口模式(上)——应用模式与设计实现

    看这名就知道文章特别干货,双端口对于SSD和数据中心来讲着实是个重要特性,Memblaze工程师汪洋倾力打造了上下两篇双端口文章,从应用模型.设计实现到可靠性和性能测试,都介绍一遍.这篇是上篇,介绍了 ...

  4. 创业基础(第五章:商业模式及其设计与创新) 来自高校:全国大学生创新创业实践联盟 分类:创新创业 学习规则:按序学习

    5.1: (单选) 一个企业的成功不仅是产品的成功,更是(B)的成功. A. 财务核算 B. 商业模式 C. 冒险策略 D. 人生历程 (单选) 商业模式用来描述企业如何(D)的基本原理. A. 创造 ...

  5. 《英雄联盟》——召唤师峡谷模式 游戏设计元素分析

    <英雄联盟>--召唤师峡谷模式 游戏设计元素分析: 前言 玩家 游戏目标 规则与行动 挑战 成功的因素 前言 本文只针对<英雄联盟>这款游戏中的其中一个模式<召唤师峡谷& ...

  6. 项目商业模式的设计与思考

    项目开发者在代码中不断的成长,有些也会逐步的介入产品商业模式的设计.对于初步涉足商业产品设计,可能我们只会考虑到最直接的系统逻辑与商业模式,但是完整的商业模式,也应当具备更长远的项目规划: 1.可行的 ...

  7. mysql 说说反模式设计_关于反模式、设计和复用的一些想法

    在维护系统的时候发现有个工作经验超级丰富的同事在C#代码中使用了goto,这段代码是一个很长的方法,goto的作用是为了复用两段逻辑.当我第一次看到goto是为了复用一段C#代码的时候感觉无比诡异,总 ...

  8. 记关于SaaS平台中应对多租户模式的设计

    用了多年的权限管理模型,今天才知道有正规RBDC设计思想 ,知识不系统化的结果,mark:也是从合同附件里面看到saas多租户设计 才具体了解其概念,了解的越多发现懂得越少另外关于权限设计: 关于Sa ...

  9. 安卓中实现情景模式的设计

    情景模式的设计,我一共做了三个布局,分别为Tab1Activity    Tab2Activity   Tab3Activity,用MainActivity控制其后三个TabActivity,当运行的 ...

最新文章

  1. 利用JS获取IE客户端IP及MAC的实现
  2. Day2_and_Day3 文件操作
  3. linux用户简单指令操作
  4. Python可视化中Matplotlib(4.三种设置样式方法、设置坐标刻度以及标签、设置显示出特殊字符)
  5. 【MapBox】5种地图(底图)样式自由切换附源码
  6. MySQL安装和完全卸载-Linux ubantu18.04
  7. python re正则查找_python正则表达式 - re
  8. 正在此计算机上搜索更新,安装用友T3卡在最后一步windows update这里提示正在此计算机上搜索更新没有反应...
  9. Java 时间处理 Instant
  10. 数学6年级测试软件,苏教版数学六年级下册2018年小学六年级毕业测试试卷(无答案).doc...
  11. ERROR: Unable to write in /opt/module/hadoop-3.1.3/logs. Aborting
  12. 嵩天python123测试3_嵩天老师python123测验3: 基本数据类型 (第3周)
  13. .html() 与.text() 获取值、取值 区别
  14. LINUX下查看Apache并发请求数及其TCP连接状态
  15. python rabitmq_python中RabbitMQ的使用(安装和简单教程)
  16. chrome 开发工具插件总结
  17. 短期通过PMP考试?
  18. JavaScript--对象类型详解
  19. Word打开docx文件报错
  20. matplotlib(直方图,条形图,饼图,散点图)基础知识

热门文章

  1. 如何更新android v7 support library,新手入门之Android Support Library | Soo Smart!
  2. 【数理知识】《随机过程》方兆本老师-第2章-Poisson 过程
  3. STM 32如何实现程序自加密
  4. Android system server之WatchDog看门狗分析
  5. 标准PSO辨识NARMAX模型源码程序
  6. 这个男人让你的爬虫开发效率提升8倍
  7. log-slave-updates 引起 MySQL 从节点同步异常慢
  8. 二十八、layui的日历组件使用
  9. AGG第二课 代码框架以及命名规则
  10. SQL SERVER 数据库 怎么从一个服务器一个表中把数据插入到另一个服务器中的一个表内(纯复制)...