基于QT开发多人聊天项目4:获取在线列表功能和聊天功能的实现

本文讲解了如何实现客户端定时获取在线列表、服务器端链表存储用户信息,以及通过双击事件创建并管理聊天界面。通过使用map容器避免重复创建,确保高效聊天体验。涉及的技术包括定时器、链表操作和信号槽机制。

1 获取在线列表功能实现

1.1 、客户端

这个功能,客户端的组包和解包的实现,和上一节的类似。
只是要注意:
为实时获得在线情况,我们需要用到定时器。通过定时器,周期的发送 获取在线列表 的数据包。

1.2 服务器端

为了能够保存客户端登录信息,我们使用链表,对客户端的登录信息进行保存。
这里用到了链表的基本操作。参考博客:
https://blog.youkuaiyun.com/cainiaofu/article/details/108534731

2、聊天功能的实现

2.1预期效果

点击在线用户列表中的某个ID,弹出对应的对话框。通过这个对话框,和这个ID聊天。

2.2 实现流程

假设现在有两个客户端(15和16),他们要将进行聊天。
在这里插入图片描述
我们在客户端15的列表中,点击16;表示要和16进行聊天。
我们在双击16的时候,通过信号与槽,创建和16的聊天界面。
在这里插入图片描述
这部分的代码如下:

//QModelIndex:被点击的文本    如果是和他人聊天,这个文本的内容就是对端ID
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One Piece&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值