Centos&Qt——ChatRoom for Neuedu

概要设计书(点击此处查看)

详细设计书(点击此处查看)


全文档(点击此处查看)

源代码(点击此处查看)

效果图:


请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述


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.流程图


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GodOuO

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

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

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

打赏作者

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

抵扣说明:

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

余额充值