• 大小: 825KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: LinPop  

资源简介

用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个文件信息

评论

共有 条评论