客户端及时通讯系统(1)

一、核心数据结构介绍

1)用户信息(UserTnfo)
用户的属性

2)会话信息(ChatSessionInfo)
用户与用户之间的聊天会话

3)消息信息(Message)
文本消息
图片消息
文件消息
语音消息

文本消息,是正文的字符串;图片、文件、语言消息,正文是一个二进制序列。
表示字符串,必须使用QString;表示二进制数据,必须使用QByteArray。

1.我们要创建目录然后创建文件来表示我们的核心类,model是MVC结构里的模型(qt Creator中不方便直接创建,我们就手动创建model)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
2.把c++头文件导入到qt里
在这里插入图片描述
在这里插入图片描述
3.qt的Cmake自动更新文件内容,编译qt文件所需要的依赖(qt_add_executable)
在这里插入图片描述
4.命名空间的约定(我设置的当前约定)

1.如果代码所在文件,就是项目的顶层目录中,就直接使用全局的命名空间(不需要手动设置命名空间)
2.如果代码所在文件,在某个子目录中,此时子目录就是文件的命名空间

5.认识static

普通函数:需要把对象构造出来,才能使用普通的函数
加static的函数:不需要先构造函数就可以调用。

6.认识uuid

UUID这个东西,背后是一套算法,就能生成全球唯一的身份标识。

7.认识qDebug

qDebug 打印字符串的时候, 就会自动加上 " “;
qDebug().noquote()可以去除双引号(”")。

二、将本地新项目推送到gitee已有仓库上

在命令窗口中输入:git init
在 Gitee 中 我们刚刚新建的仓库里,去复制仓库的地址
在命令窗口中输入:git remote add origin 你的仓库地址
在命令窗口中输入:git pull origin master
在命令窗口中输入:git add .
在命令窗口中输入:git commit -m “提交项目”
在命令窗口中输入:git push origin master

三、代码实现

3.1 核心数据结构成员变量设计和工具类设计

#pragma once

#include <QString>
#include <QIcon>
#include <QUuid>
#include <QDateTime>
#include <QFile>
#include <QFileInfo>
#include <QDebug>

//创建命名空间
namespace model {
   
   

//////////////////////////////////
/// 工具函数. 后续很多模块可能都要用到
//////////////////////////////////

static inline QString getFileName(const QString& path) {
   
   
    QFileInfo fileInfo(path);
    return fileInfo.fileName();
}

// 封装一个 "宏" 作为打印日志的方式.
#define TAG QString("[%1:%2]").arg(model::getFileName(__FILE__), QString::number(__LINE__))
// #define TAG "[" << __LINE__ << "]"

// qDebug 打印字符串的时候, 就会自动加上 " "
#define LOG() qDebug().noquote() << TAG

// 要求函数的定义如果写在 .h 中, 必须加 static 或者 inline (当然两个都加也可以), 避免链接阶段出现 "函数重定义" 的问题.
static inline QString formatTime(int64_t timestamp) {
   
   
    // 先把时间戳, 转换成 QDateTime 对象
    QDateTime dateTime 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值