当前位置: 首页 > news >正文

用户信息界面按钮禁用+发送消息功能

用户信息界面按钮禁用+发送消息功能

前言

那么在上一集我们就完成了个人信息窗口所有的内容的修改,那么我们就需要进一步来看我们别的用户的信息界面的窗口。

需求分析

在之前的我们也讲了用户信息界面窗口一共有下图几种组件。

用户头像、用户id、用户昵称、用户电话、以及三大按钮。

其中我们客户端能够交互的只有这三大按钮,但是这三大按钮,并不是同一时间都可以操作的。

我们在之前也讲过,当我们是好友的时候,我们就应该禁用申请好友的功能,我们就可以进行发送消息以及删除好友的功能。当我们不是好友的时候,我们就应该只允许我们使用申请好友的功能,而不能去使用发送消息以及删除好友的功能。

所以我们这一集就先来完成三大按钮的禁用关系以及我们发送消息的功能。

初始化阶段禁用

我们其实在初始化我们的用户个人信息窗口的时候,我们就会传入对应用户的userInfo。而我们在DataCenter里面也是存放了我们的好友信息列表。

那么我们初始化阶段其实就可以知道我们的这个用户是否为我们的好友了。那么我们就可以在初始化阶段就可以把我们的三大按钮进行绑定禁用。

所以就有了下面的代码

    //初始化按钮禁用关系//判定依据:当前用户的userId与DataCenter好友列表的userIdDataCenter* dataCenter = DataCenter::getInstance();auto* myFriend = dataCenter->findFriendById(this->userInfo.userId);if(myFriend == nullptr){//不是好友sendMessageBtn->setEnabled(false);deleteFriendBtn->setEnabled(false);}else{//是好友applyBtn->setEnabled(false);}

这样我们就完成了这禁用按钮的功能。

发送消息按钮

我们在用户详细信息窗口这里可以看到发送消息的按钮,当我们是好友的时候就可以点击并触发。

我们点击了这个按钮之后,就会自动跳转到对应的好友会话当中。如下:

那么我们可以发现,其实我们之前在实现点击好友列表指定好友跳转指定会话是异曲同工之妙,所以我们就也可以直接复用我们之前写的逻辑!

    //发送消息connect(sendMessageBtn, &QPushButton::clicked, this, [=](){//拿到主窗口单例MainWidget* mainWidget = MainWidget::getInstance();//复用里面的切换会话功能mainWidget->switchSession(userInfo.userId);//关闭本窗口this->close();});

这样就可以跳转到指定的会话进行发送消息了!

那么这一集就先到这里!

http://www.lryc.cn/news/501228.html

相关文章:

  • 接近开关传感器-PCB线图电感式传感器【衰减系数1】
  • C/C++流星雨
  • 计算机网络:传输层、应用层、网络安全、视频/音频/无线网络、下一代因特网
  • [漏洞挖掘与防护] 05.CVE-2018-12613:phpMyAdmin 4.8.1后台文件包含缺陷复现及防御措施
  • GroundingDINO微调训练_训练日志解释
  • 【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 )
  • H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用
  • pytorch多GPU训练教程
  • 力扣--LCR 178.训练计划VI
  • Linux 网络接口配置
  • 【从零开始入门unity游戏开发之——C#篇01】理论开篇
  • ABAP开发-批量导入BAPI和BDC_1
  • RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式
  • 并非传统意义上的整体二分
  • PostgreSQL的一主一从集群搭建部署 (同步)
  • ios逆向某新闻 md5+aes
  • grpc的负载均衡
  • 提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)
  • 【51单片机】程序实验1112.外部中断-定时器中断
  • webrtc-java:引领Java进入实时通信新时代
  • TongWeb7-东方通快速使用手册
  • JVM内存区块
  • C语言单元总结
  • 通过PS和Unity制作2D动画之一:创建形象
  • Notable是一款优秀开源免费的Markdown编辑器
  • 基于MFC绘制门电路
  • C—指针初阶(2)
  • Linux 基础环境的开发工具以及使用(下)
  • constexpr、const和 #define 的比较
  • 期末复习-Hadoop综合复习