资源简介
用QT做的一款局域网内的即时通信软件,主要使用的是Udp技术,不需要服务器,只需要客户端就能实现局域网内多个用户之间的通信。
功能:可以任意两个用户之间聊天,传送文件,修改字体,颜色,查看聊天记录。
代码片段和文件信息
#include “chatroom.h“
#include “ui_chatroom.h“
#include“UdpStruct.h“
#include“communicate.h“
#include“sendfile.h“
#include
#include
#include
#include
#include
#include
ChatRoom::ChatRoom(User &selfUser &receiverCommunicate *comQWidget *parent) :
QWidget(parent)
ui(new Ui::ChatRoom)
{
ui->setupUi(this);
this->self=self;
this->receiver=receiver;
sendM.self=this->self;
ui->receiver_nick->setText(receiver.Unick);
ui->receiver_ip->setText(receiver.Uip);
ui->myself_ip->setText(self.Uip);
ui->myself_nick->setText(self.Unick);
ui->image->setPixmap(QPixmap(“:/image/Image/newface/1.bmp“));
setWindowtitle(this->receiver.Unick);
ui->sendFile->setEnabled(false);
this->com=com;
readFontColor();
connect(&sendfileSIGNAL(Signal_updateClientProgress())thisSLOT(updateClientProgress()));
connect(&sendfileSIGNAL(Signal_updateServerProgress())thisSLOT(updateServerProgress()));
}
ChatRoom::~ChatRoom()
{
delete ui;
}
QString ChatRoom::getCurrentDateTime()
{
QTime time = QTime::currentTime();
QDate date = QDate::currentDate();
return QString(“%1 %2“).arg(date.toString(Qt::ISODate))
.arg(time.toString(Qt::ISODate));
}
void ChatRoom::on_Btn_send_clicked()
{
sendM.kind=MESSAGE;
if(ui->InputEdit->toPlainText().isEmpty())
return;
QString temp=ui->InputEdit->toHtml();
ui->InputEdit->clear();
QString time=getCurrentDateTime();
QString message = QString(“%1 %2:%3“)
.arg(self.Unick).arg(time).arg(temp);
QString messageLocal=QString(“%1 %2:%3“)
.arg(self.Unick).arg(time).arg(temp);
ui->OutEdit->append(messageLocal);
sendM.news=message;
com->sendSingle(receiversendM);
}
void ChatRoom::showMessage(Message &m)
{
ui->OutEdit->append(m.news);
}
void ChatRoom::closeEvent(QCloseEvent *event)
{
// saveTalkHistory();
emit chatroomclosed();
}
void ChatRoom::on_Btn_close_clicked()
{
saveTalkHistory();
this->close();
}
void ChatRoom::saveTalkHistory()
{
QString fileLoad = QString(“./save/%1.txt“).arg(receiver.Uip);
fileLoad = QDir::toNativeSeparators(fileLoad);
QFile file(fileLoad);
bool isOpen = file.open(QIODevice::WriteOnly | QIODevice::Append);
if(!isOpen)
{
qDebug()<<“not open“;
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_0);
if(ui->OutEdit->toPlainText().isEmpty())
return;
QString talkRecord = ui->OutEdit->toHtml();
out << talkRecord;
file.close();
}
QString ChatRoom::readTalkHistory()
{
QString allRecord;
QString fileLoad = QString(“./save/%1.txt“)
.arg(receiver.Uip);
fileLoad = QDir::toNativeSeparators(fileLoad);
QFile file(fileLoad);
bool isOpen = file.open(QIODevice::ReadOnly);
if(!isOpen)
return ui->OutEdit->toHtml();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-11-09 17:27 newUdpChat_2.3\
文件 6247 2014-11-06 10:10 newUdpChat_2.3\chatroom.cpp
文件 1173 2014-11-05 18:58 newUdpChat_2.3\chatroom.h
文件 6460 2014-11-06 13:09 newUdpChat_2.3\chatroom.ui
文件 1645 2014-11-05 19:05 newUdpChat_2.3\communicate.cpp
文件 689 2014-11-05 18:36 newUdpChat_2.3\communicate.h
目录 0 2014-11-09 16:30 newUdpChat_2.3\Image\
文件 514 2014-11-06 09:28 newUdpChat_2.3\image.qrc
目录 0 2014-11-09 16:31 newUdpChat_2.3\Image\face\
文件 1810 2007-08-30 22:05 newUdpChat_2.3\Image\face\0.gif
文件 1582 2007-08-30 21:54 newUdpChat_2.3\Image\face\1.gif
文件 3716 2008-01-03 16:38 newUdpChat_2.3\Image\face\10.gif
文件 1780 2007-08-30 21:54 newUdpChat_2.3\Image\face\100.gif
文件 2443 2007-08-30 21:54 newUdpChat_2.3\Image\face\101.gif
文件 1446 2007-08-30 21:54 newUdpChat_2.3\Image\face\102.gif
文件 2166 2007-08-30 21:54 newUdpChat_2.3\Image\face\103.gif
文件 2169 2007-08-30 21:54 newUdpChat_2.3\Image\face\104.gif
文件 1277 2007-08-30 21:54 newUdpChat_2.3\Image\face\105.gif
文件 1041 2007-08-30 21:54 newUdpChat_2.3\Image\face\106.gif
文件 1058 2007-08-30 21:54 newUdpChat_2.3\Image\face\107.gif
文件 1046 2007-08-30 21:55 newUdpChat_2.3\Image\face\108.gif
文件 1081 2007-08-30 21:55 newUdpChat_2.3\Image\face\109.gif
文件 8033 2007-08-30 21:55 newUdpChat_2.3\Image\face\11.gif
文件 1082 2007-08-30 21:55 newUdpChat_2.3\Image\face\110.gif
文件 1039 2007-08-30 21:55 newUdpChat_2.3\Image\face\111.gif
文件 1111 2007-08-30 21:55 newUdpChat_2.3\Image\face\112.gif
文件 1015 2007-08-30 21:55 newUdpChat_2.3\Image\face\113.gif
文件 1003 2007-08-30 21:55 newUdpChat_2.3\Image\face\114.gif
文件 1061 2007-08-30 21:55 newUdpChat_2.3\Image\face\115.gif
文件 996 2007-08-30 21:55 newUdpChat_2.3\Image\face\116.gif
文件 1041 2007-08-30 21:55 newUdpChat_2.3\Image\face\117.gif
............此处省略312个文件信息
- 上一篇:基于pb的简单考试系统
- 下一篇:通用浏览器调用摄像头拍照
评论
共有 条评论