資源簡介
本功能設計實現了局域網聊天系統的群聊以及私聊部分,群聊部分借鑒《Qt及Qt Quick開發(fā)實戰(zhàn)精解》中的實例,添加了私聊功能,適合初學者學習,博客鏈接:https://blog.csdn.net/hfuu1504011020/article/details/81907478

代碼片段和文件信息
#include?“chat.h“
#include?“ui_chat.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int?Chat::num1?=0;
int?Chat?::num2?=?0;
/*Chat::Chat(QWidget?*parent)?:
????QDialog(parent)
????ui(new?Ui::Chat)
????server(nullptr)
????xchat(nullptr)
????is_opend(false)
{
????ui->setupUi(this);
}
*/
Chat::~Chat()
{
????is_opend?=?false;
????delete?ui;
}
Chat::Chat(QString?pasvusername?QString?pasvuserip):
????xpasusername(pasvusername)
????xpasuserip(pasvuserip)
????is_opend(false)
????server(nullptr)
????xchat(nullptr)
????used(false)
????ui(new?Ui::Chat)
{
????ui->setupUi(this);
????ui->messageTextEdit->setFocusPolicy(Qt::StrongFocus);
????ui->textBrowser->setFocusPolicy(Qt::NoFocus);
????ui->messageTextEdit->setFocus();
????ui->messageTextEdit->installEventFilter(this);
????a?=?0;
???//?is_opend?=?false;
????ui->label->setText(tr(“與%1私聊中?對方的IP:%2“).arg(xpasusername)
???????????????????????.arg(xpasuserip));
????xchat?=?new?QUdpSocket(this);
????xport?=?45456;
????xchat->bind(?QHostAddress(getIp())xport);
????connect(xchatSIGNAL(readyRead())
????????????thisSLOT(processPendinDatagrams()));
????server?=?new?TcpServer(this);
????connect(server?SIGNAL(sendFileName(QString))
????????????thisSLOT(getFileName(QString)));
}
void?Chat::sendMessage(messageType?type?QString?serverAddress)
{
????QByteArray?data;
????QDataStream?out(&dataQIODevice::WriteOnly);
????QString?localHostName?=?QHostInfo::localHostName();
????QString?address?=?getIp();
????out?< ????switch?(type)?{
????case?LeftParticipant:
????????break;
????case?Message:
????{
????????used?=?false;
????????if(ui->messageTextEdit->toPlainText()?==““)
????????{
????????????QMessageBox::warning(0tr(“警告“)tr(“發(fā)送內容不能為空“)QMessageBox::Ok);
????????????return?;
????????}
????????else
????????{
????????????ui->label->setText(tr(“與%1私聊中?對方的IP:%2“).arg(xpasusername)
???????????????????????????????.arg(xpasuserip));
????????????message?=?getMessage();
????????????out?<
???????????//?out?<????????????ui->textBrowser->verticalScrollBar()->setValue(ui->textBrowser->verticalScrollBar()->maximum());
????????}
????????break;
????}
????case?FileName:
????{
????????QString?clientAddresss?=?xpasuserip;
????????out?<????????break;
????}
????case?Refuse:
????{
????????out?<????????break;
????}
????default:
????????break;
????}
?????qDebug()?<<“num1:“?<++num1?<“ipAddress:“?<????xchat->writeDatagram(datadata.length()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-21?09:16??chatPrivate\
?????文件?????????861??2009-10-16?18:37??chatPrivate\bold.png
?????文件???????12285??2018-08-20?16:41??chatPrivate\chat.cpp
?????文件????????2127??2018-08-20?15:29??chatPrivate\chat.h
?????文件????????7606??2018-08-18?09:59??chatPrivate\chat.ui
?????文件????????1291??2018-08-20?17:00??chatPrivate\chatPrivate.pro
?????文件???????23787??2018-08-21?09:16??chatPrivate\chatPrivate.pro.user
?????文件????????1028??2009-10-16?18:37??chatPrivate\clear.png
?????文件?????????960??2009-10-16?18:37??chatPrivate\color.png
?????文件?????????304??2018-08-20?16:49??chatPrivate\images.qrc
?????文件?????????992??2009-10-16?18:37??chatPrivate\italic.png
?????文件?????????351??2018-08-20?16:52??chatPrivate\main.cpp
?????文件??????????42??2018-08-21?09:11??chatPrivate\myapp.rc
?????文件??????161862??2018-08-20?16:48??chatPrivate\myicon.ico
?????文件????????1172??2009-10-16?18:37??chatPrivate\save.png
?????文件?????????758??2009-09-22?13:43??chatPrivate\send.png
?????文件????????3720??2018-08-19?18:54??chatPrivate\tcpclient.cpp
?????文件????????1037??2018-08-19?18:55??chatPrivate\tcpclient.h
?????文件????????1639??2018-08-15?07:20??chatPrivate\tcpclient.ui
?????文件????????5060??2018-08-19?19:04??chatPrivate\tcpserver.cpp
?????文件????????1123??2018-08-18?04:58??chatPrivate\tcpserver.h
?????文件????????1950??2018-08-15?07:20??chatPrivate\tcpserver.ui
?????文件?????????838??2009-10-16?18:37??chatPrivate\under.png
?????文件???????14395??2018-08-20?13:11??chatPrivate\widget.cpp
?????文件????????2035??2018-08-19?13:39??chatPrivate\widget.h
?????文件????????8840??2018-08-15?00:42??chatPrivate\widget.ui
- 上一篇:OA考勤與excel手工考勤自動合并樣例
- 下一篇:PyCharm主題配色方案
評論
共有 條評論