效果图:
1.函数一览表
loginBox.h
bool getString(str,edit,message) 完成获取登录信息功能
void setStatus(statusStr) 设置用户登录状态
void ServerDisconnected() 和服务器断开连接
void initStatus() 初始化状态
void connectedStatus() 连接建立后的状态
loginBox.cpp
void clickedRegisterButton() 完成打开注册框功能
void clickedLoginButton() 完成打开登录框功能
void result(replyKind) 验证登陆反馈后打开主界面
void setStatus(statusStr) 设置账户在线状态
void checkConnectionButton() 正则表达式保证输入合法服务器地址
informationBox.h
void setAllReadOnly(enable) 所有栏目设置为只读
void setMostReadOnly(enable) 除帐号,密码栏之外的栏目设为只读
void setSomeReadOnly(enable) 帐号,密码栏设置为只读
void setUserInformation(userInf) 好友信息填入栏目
bool informationIsAllow() 校验个人信息的格式是否符合要求
bool passwordIsAllow() 校验密码的格式是否符合要求
void clickedQuitButton() 纯虚函数完成按钮
void clickedPastButton() 纯虚函数完成按钮
void clickedNextButton() 纯虚函数完成按钮
void clickedHelpButton() 纯虚函数完成按钮
informationBox.cpp
void clickedQuitButton() 终止进程退出界面
void clickedPastButton() 监听并调出上一张头像
void clickedNextButton() 监听并调出下一张头像
void clickedHelpButton() 监听调出详细的帮助条款翻译文件(client.qm)中
window.h
bool continueToClose() 询问用户是否真的要退出
void createFolder() 创建文件夹,用于记录设置和聊天记录
void createTrayIcon() 创建托盘图标
void setMyInformation() 设置帐户个人信息
void addFriendButton(friInf) 添加好友按钮
void changeFriendStatus(acc,status) 改变好友状态
void deleteFromTable(acc); 将选定好友从列表中删除
void setStatusFromInt(n,str) 将状态值转换成字符串形式
void setButtonStatus(friInf,button) 设置好友按钮图标的状态
void processingMessage(mes) 处理信息
void receivedTalkMessage(mes) 处理信息
void replyAddFriend(tMessage) 处理信息
window.cpp
void linkDisconnected() 序如果和服务器断开连接时,弹出警告并直接退出
removeFriend(peerAccount) 如果好友不存在,直接返回
void processingMessage(mes) 是否同意添加好友
void receivedTalkMessage(mes) 收发谈话消息
void replyAddFriend(tMessage) 回复好友
void result(replyKind) 处理各种从服务器传回来的信息
chatRoom.h
void saveTalkHistory() 存储聊天记录
void readFontColor() 文件中读取字体颜色设置
void saveFontColor() 文件中写入字体颜色设置
void setOutputLine(mes) 设置输出栏
void roomQuitSignal() 发送退出信号
void messageSignal(mes) 让主界面来发送聊天信息
chatRoom.cpp
void clickedSendButton() 检测输入栏状态并准备发送至服务器
void closeEvent(event) 向主界面发送退出信号
void clickedColorButton() 设置字体的颜色,并将其写入文件
void clickedFontsButton() 设置字体,并将其写入文件
void clickedRecordButton() 监听显示聊天记录
void inputTextChanged() 输入文本
QString readTalkHistory() 读取聊天记录。并加上输入栏中的字符
QString getCurrentDateTime() 读取本地时间
addFriend.h
void AddFriendBox(tLink,myAccount,parent=0) 添加好友
void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
addFriend.cpp
void closeEvent(event) 手动断开连接
void clickedOKButton() 验证通过后发送好友申请
void result(replyKind) 正则表达式检测帐户真伪,避免自填
changeInf.h
void changeInformationSignal(int,QString,QString) 修改个人信息
void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
changeInf.cpp
void closeEvent(event) 手动断开连接
void clickedOKButton() 验证通过后提交
void result(replyKind) 获取个人信息并修改,避免重复
changePwd.h
void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
changePwd.cpp
void closeEvent(event) 手动断开连接
void clickedOKButton() 获取旧密码验证后进行更改事件密码提交
void result(replyKind) 验证后警告提示
friendbutton.h
void getStatusFromInt(n,str) 好友状态从数字转换为字符串形式
void creatMenu() 创建右键菜单
void openChatRoom() 打开聊天窗口
void setButtonStatus() 设置好友按钮的状态
void closeChatRoom() 关闭聊天窗口
void clickedFriendButton() 左键点击按键
void clickedRightButton() 右键点击按键
void clickedShowInformation() 显示好友详细信息
void clickedChangeRemark() 点击修改好友备注按键
void clickedRemoveFriend() 删除好友
void chatRoomQuit() 聊天窗口关闭
void changeRemark(newRemark) 修改好友状态
void changeStatus(status); 修改好友状态
friendbutton.cpp
void FriendButton(tLink,theFriend,acc,name,parent) 变更好友状态
inputTextEdit.h
void keyPressEvent(event) 发送信息
void sendSignal() 发送信号
inputTextEdit.cpp
void keyPressEvent(event) 如果按下Ctrl+Enter,就发送信息,否则就按默认的方式来处理
register.h
void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
register.cpp
void closeEvent(event) 手动断开连接
void clickedOKButton() 验证通过后提交
void result(replyKind) 获取个人注册信息,避免重复
remark.h
void changeRemarkSignal(newRemark) 修改备注
void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
remark.cpp
void closeEvent(event) 手动断开连接
void clickedOKButton() 发送修改备注请求
void result(replyKind) 做出警示提醒
showUserInf.h void closeEvent(event) 结束事件,断开连接
void clickedOKButton() 监听OK并作出反馈
void result(replyKind) 进行转译
showUserInf.cpp void closeEvent(event) 手动断开连接
void clickedOKButton() 向服务器发送请求,要求获得该用户的详细信息
void result(replyKind) 做出警示提醒
links.h void setIpAddress(node) 返回各种数据
void loginRequest(li) 发送各种用户请求
void registerRequest(usin) 发送各种用户请求
void quitRequest(acc) 发送各种用户请求
void messageRequest(mes) 发送各种用户请求
void checkConnectionRequest() 发送各种用户请求
void checkMessageRequest(acc) 发送各种用户请求
void addFriendRequest(mes) 发送各种用户请求
void getFriendRequest(acc) 发送各种用户请求
void deleteFriendRequest(peer) 发送各种用户请求
void getUserRequest(acc) 发送各种用户请求
void changeInformationRequest(usin) 发送各种用户请求
void changeRemarkRequest(mes) 发送各种用户请求
void changePasswordRequest(temp) 发送各种用户请求
void changeStatusRequest(acc,n) 发送各种用户请求
void sendRequest() 发送信息
void readResult() 读取信息
void ServerDisconnected() 与服务器断开连接
void displayError(socketError) 提示错误信息
void newReplySignal(replyKind) 信号函数
void connectionFailedSignal() 信号函数
void disconnectedSignal() 信号函数
links.cpp void newConnect() 创建新连接
clientsocket.h void sendSignal(temp) 请求Server处理信息
void userLoginSignal(user); 用户登录
void deleteSignal(acc); 断开连接
void receiveMessage() 接收和发送信息
void sendMessage(temp) 接收和发送信息
void deleteScoket() 接收和发送信息
clientSocket.cpp void receiveMessage() 接收消息
void sendMessage(temp) 发送
void deleteScoket() 断开
database.h
void errorSQLOrder(query,mark) 检查SQL语句的正确性
void createTable() 创建数据库
void loginSuccess(query,logInf,Vec) 登录成功
void agreeFriend(mes) 处理好友请求
void disagreeFriendmes() 处理好友请求
qint32 loginRequest(logInf,friendsVec) 处理从客户端发过来的各种请求
qint32 registerRequest(userInf) 处理从客户端发过来的各种请求
qint32 quitRequest(acc); 处理从客户端发过来的各种请求
qint32 messageRequest(mes) 处理从客户端发过来的各种请求
qint32 addFriendRequest(mes) 处理从客户端发过来的各种请求
qint32 checkRequest(acc,messageVec) 处理从客户端发过来的各种请求
qint32 getFriendInfRequest(acc,fri) 处理从客户端发过来的各种请求
qint32 deleteFriendRequest(myAcc,peerAcc) 处理从客户端发过来的各种请求
qint32 getUserInfRequest(acc,userInf) 处理从客户端发过来的各种请求
qint32 changeInformationRequest(userInf) 处理从客户端发过来的各种请求
qint32 changeRemarkRequset(message) 处理从客户端发过来的各种请求
qint32 changePasswordRequest(tempStr) 处理从客户端发过来的各种请求
qint32 changeStatusRequest(acc,status) 处理从客户端发过来的各种请求
qint32 getAllInformationRequest(acc,friendsVec,messageVec) 处理从客户端发过来的各种请求
void addMessageRequest(mes) 处理从客户端发过来的各种请求
void getFriendsAccount(acc,friVec) 处理从客户端发过来的各种请求
void initiDatabase() 初始化数据库,状态设置OFFLINE
database.cpp
qint32 loginRequest(logInf,friendsVec) 登录
qint32 registerRequest(userInf) 注册请求
qint32 quitRequest(acc); 退出请求
qint32 messageRequest(mes) 消息请求
qint32 addFriendRequest(mes) 添加好友请求
qint32 checkRequest(acc,messageVec) 检查请求
qint32 getFriendInfRequest(acc,fri) 查看好友请求
qint32 deleteFriendRequest(myAcc,peerAcc) 拒接好友请假
qint32 getUserInfRequest(acc,userInf) 得到用户请求
qint32 changeInformationRequest(userInf) 改变信息请求
qint32 changeRemarkRequset(message) 改变标记请求
qint32 changePasswordRequest(tempStr) 改变密码请求
qint32 changeStatusRequest(acc,status) 改变状态请求
qint32 getAllInformationRequest(acc,friendsVec,messageVec) 获取所有信息
void addMessageRequest(mes) 添加消息请求
server.h
void friendRequest(save) 处理好友请求
void changeStatu(acc,status) 改变用户状态
void incomingConnection(sockDescriptor) Protected状态
void clientDisconnected(acc) 客户端断开连接
void sendMessage(save) 要求clientSocket发送信息
main.cpp
int main(int argc, char *argv[]) 启动,加载翻译文件
2.宏定义
LOGINBOX_H_ Undefined 打开程序时的登录
INFORMATIONBOX_H_ Undefined 用于显示或修改信息
WINDOW_H_ Undefined 程序的主线程
CHATROOM_H_ Undefined 好友聊天
ADDFRIEND_H_ Undefined 添加好友
CHANGEINF_H_ Undefined 改变个人信息
CHANGEPWD_H_ Undefined 修改密码
CONSTANT_H_ Undefined 定义常用的结构体与常量
FRIENDBUTTON_H_ Undefined 主窗口好友功能
INPUTTEXTEDIT_H_ Undefined 自定义输入栏
REGISTERBOX_H_ Undefined 注册
REMARK_H_ Undefined 修改好友
SHOWUSERINF_H_ Undefined 好友详细信息
CLIENT_H_ Undefined 网络连接专用
CLIENTSOCKET_H_ Undefined 接收和发送信息
DATABASE_H_ Undefined QSQLITE
SERVER_H_ Undefined 网络连接描述符
WIDGET_H_ Undefined 小部件
3.结构体
ServerNode 服务器地址和窗口
SaveFile 存储聊天字体和颜色
UserInformation 储存用户详细信息
TempStrings 储存在各种小窗口中填写的信息文本串
LoginInformation 登录信息
FriendInformation 好友信息
Message 储存消息
UserInformation 用户详细信息
saveStruct 存储临时信息
4.全局变量
变量名 类型 描述
message Message 信息
link Links * 链
userInf UserInformation 个人详细信息
friInf FriendInformation 好友信息
tPassward QString 存储验证密码
account QString 个人帐号
ui Ui::chatroomWidget UI
peer FriendInformation 储存对方信息
myAccount QString 个人的帐号
myName QString 个人的昵称
peerRemark QString
sendString QString 要发送的信息
saveFile SaveFile 字体和颜色
ipAddress QString 服务器地址
port int 服务器窗口
strStatus QString 以字符串形式储存好友信息
isOpen bool 聊天窗口是否打开
room Chatroom * 指向聊天窗口的指针
menu QMenu * 右键菜单
confirmPwd QString 验证密码
num int 自循环变量
all static const int 总头像数(=134)
serverNode ServerNode 服务数据
requestKind qint32 请求类型
replyKind qint32 应答类型
peerAcc QString
status qint32 好友帐户状态
logInf LoginInformation 存储登录信息
theFriend FriendInformation 好友详细信息
tempStr TempStrings
messageVec QVector<Message> 存储从服务器返回的消息列表
friendsVec QVector
<FriendInformation> 存储从服务器返回的好友列表
tcpClient QTcpSocket *
blockSize qint16
firstLabel QLabel * 输入栏和标题栏的指针
secondLabel QLabel * 输入栏和标题栏的指针
thirdLabel QLabel * 输入栏和标题栏的指针
QLineEdit firstLineEdit * 输入栏和标题栏的指针
QLineEdit secondLineEdit * 输入栏和标题栏的指针
QLineEdit thirdLineEdit * 输入栏和标题栏的指针
QPushButton OKPushButton * 输入栏和标题栏的指针
QPushButton closePushButton * 输入栏和标题栏的指针
layout QVBoxLayout * 输入栏和标题栏的指针
groupBox QGroupBox * 输入栏和标题栏的指针
friButtonMap QMap<QString,FriendButton*> 输入栏和标题栏的指针
trayIcon QSystemTrayIcon * 托盘图标和它的按钮
onlineAction QAction 托盘图标和它的按钮
talkAction QAction 托盘图标和它的按钮
busyAction QAction 托盘图标和它的按钮
leaveAction QAction 托盘图标和它的按钮
disturbAction QAction 托盘图标和它的按钮
stealthAction QAction 托盘图标和它的按钮
quitAction QAction 托盘图标和它的按钮
trayIconMenu QMenu 托盘图标和它的按钮
trayMap QSignalMapper 托盘图标和它的按钮
save saveStruct 储存各种信息
account QString 帐号
password QString 密码
nickName QString 呢称
avatarNumber int 头像编号
status int 登录状态
mobileNumber QString 手机号码
phoneNumber QString 电话号码
birthday QString 生日
city QString 所在城市
aboutMyself QString 个人描述
db QSqlDatabase SQL
descriptor int 网络连接的描述符
temp saveStruct 网络连接的描述符
data ServerDatabase 连接与操作数据库
userMap QMap<QString, ClientSocket*> 已登录的用户列表
label QLabel *
quitButton QPushButton *
orderButton QPushButton *
server Server *
5.流程图