QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

时间:2024-04-12 17:24:53

QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

1、介绍

QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

希望大家一起支持开源运动,互相促进,欢迎指出问题
现在网上的资源动不动就收费,很多博客还是抄来的,居然都收费,真是醉了

  • 支持注册账号,账号登录等功能
  • 收到消息弹窗提示
  • 点击关闭到托盘
  • 在线列表上线下线自动更新
  • 记住账号(不能记住密码,仅仅记住密码不能保密懒的做了,带加密功能的记住密码后续加入)
  • 记住服务器配置
  • 聊天气泡(大部分气泡功能使用了“沙师弟”的开源代码,表示感谢,气泡功能开源项目地址
  • 注册账号不能有重名
  • 服务器采用控制台形式
  • 支持聊天记录保持(没有保存,只是聊天界面隐藏再次弹出有记录,后续会加入记录保存到数据库功能)
  • 已知问题
    • 上班业余时间挤出来,软件写的比较简陋,代码可能有些变量和函数命名和写法未严格按代码规范来些,软件架构可能有不合理的地方,多多包涵
    • 美化问题,目前只是仓促写完功能,简单修改了下qss,没有仔细美化,后续有时间会好好搞搞,用ps修修,目前用户头像不能自定义,是用的随机选择
    • 测试的少,可能有未知bug
    • 聊天界面点击关闭有一定几率导致软件关闭(偶尔遇到过一两次,几率未知)
    • 目前只有单对单聊天功能,计划后续加入emoji,群聊比较简单就懒的做了

部分效果

服务器

使用控制台,懒的做界面了
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

客户端

  • 登录和配置服务器
    登录
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

配置

QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

记住账号
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

  • 登录成功后
    主界面
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

在线界面
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

聊天界面
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

收到消息弹窗
QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

2、代码使用说明

使用编译好的工程

  • 依赖条件

  • 使用的sql server数据库,需要自己安装sql serser,配置ODBC

  • 数据库增加登录名“lu”,密码设置为“vvvv”

  • 添加数据库,库名必须为“ChatUsers”

  • 添加数据表,两个,名称分别为:“user_pwd”,“online_user”,可以使用“发行/sql”文件夹中的sql脚本

  • 先运行Server文件夹中的server.exe,再点击Clien文件夹中的client.exe运行

  • 点击齿轮,配置服务器,ip为“1270.0.1”,端口为“12345”
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

  • 注册
    在账号密码框中输入你要注册的账号和密码,长度不限(大于0),然后点击下图中的按钮,系统自动检测是否已经被注册,返回注册结果
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

  • 聊天
    如果除你之外有人在线,可以双击头像,打开聊天界面
    聊天界面的最小化按钮可以关闭(其实是隐藏)界面,聊天历史不会丢失,关闭按钮会直接关闭且丢失历史记录

使用源代码自己编译

目前我的工具链版本qt5.15版本和vs2019的C++编译器,目前在我自己电脑编译没有问题

  • 服务器代码结构如下,其中画线部分未起作用,留以后的命令操作功能(服务器是控制台形式)
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

  • 还是要安装数据库,用啥自己选,推荐sql server

  • 在下图代码中修改你自己的数据库配置
    QTalk 基于Qt的局域网聊天软件(开源,仅win平台)(beta 0.01)

  • 用qt creator打开服务器和客户端代码,编译

  • 第一次编译可能会有各种报红的地方,仔细研究,一般是配置问题,具体每个人都情况不一样,大家自己研究吧

代码地址github