• 大小: 220.8 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-11-19
  • 语言: 其他
  • 标签: QT  

资源简介

在里下的前辈的代码,只是是基于QT4的,在目前大多数新手都从QT5开始的情况下,对其中一些代码稍作修改。非常好的一个工程,不想各位因为工程配置兼容的问题不能收益。方便大家共同学习。

资源截图

代码片段和文件信息

#include “chat.h“
#include “ui_chat.h“
#include “QMessageBox“
#include “QFileDialog“
#include “QScrollBar“
#include “QColorDialog“
//chat::chat():ui(new Ui::chat)
//{
// is_opened = false;
//}


chat::chat(QString pasvusername QString pasvuserip) : ui(new Ui::chat)
{
    ui->setupUi(this);
    ui->textEdit->setFocusPolicy(Qt::StrongFocus);
    ui->textBrowser->setFocusPolicy(Qt::NoFocus);

    ui->textEdit->setFocus();
    ui->textEdit->installEventFilter(this);

a = 0;
is_opened = false;
// this->is_opened = false;
    xpasvusername = pasvusername;
    xpasvuserip = pasvuserip;

    ui->label->setText(tr(“与%1聊天中   对方IP:%2“).arg(xpasvusername).arg(pasvuserip));

//UDP部分
    xchat = new QUdpSocket(this);
    xport = 45456;
 //   xchat->bind(xport QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
    xchat->bind(QHostAddress(getIP()) xport );
    connect(xchat SIGNAL(readyRead()) this SLOT(processPendingDatagrams()));

//TCP部分
    server = new TcpServer(this);
    connect(serverSIGNAL(sendFileName(QString))thisSLOT(sentFileName(QString)));

    connect(ui->textEditSIGNAL(currentCharFormatChanged(QTextCharFormat))thisSLOT(currentFormatChanged(const QTextCharFormat)));
}

chat::~chat()
{
    is_opened = false;
delete ui;
}

bool chat::eventFilter(Qobject *target QEvent *event)
{
    if(target == ui->textEdit)
    {
        if(event->type() == QEvent::KeyPress)//按下键盘某键
        {
             QKeyEvent *k = static_cast(event);
             if(k->key() == Qt::Key_Return)//回车键
             {
                 on_send_clicked();
                 return true;
             }
        }
    }
    return QWidget::eventFilter(targetevent);
}

//处理用户离开
void chat::participantLeft(QString userNameQString localHostNameQString time)
{
    ui->textBrowser->setTextColor(Qt::gray);
    ui->textBrowser->setCurrentFont(QFont(“Times New Roman“10));
    ui->textBrowser->append(tr(“%1 于 %2 离开!“).arg(userName).arg(time));
}

QString chat::getUserName()  //获取用户名
{
    QStringList envVariables;
    envVariables << “USERNAME.*“ << “USER.*“ << “USERDOMAIN.*“
                 << “HOSTNAME.*“ << “DOMAINNAME.*“;
    QStringList environment = QProcess::systemEnvironment();
    foreach (QString string envVariables)
    {
        int index = environment.indexOf(QRegExp(string));
        if (index != -1)
        {

            QStringList stringList = environment.at(index).split(‘=‘);
            if (stringList.size() == 2)
            {
                return stringList.at(1);
                break;
            }
        }
    }
    return false;
}

QString chat::getIP()  //获取ip地址
{
    QList list = QNetworkInterface::allAddresses();
    foreach (QHostAddress address list)
    {
       if(address.protocol() == QAbstractSocket::IPv4Protocol) //我们使用IPv4地址
            return address.toString();
    }
       return 0;
}

void

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12315  2014-03-13 21:38  chat2\chat.cpp

     文件       1906  2014-03-13 21:03  chat2\chat.h

     文件        638  2014-03-13 21:20  chat2\chat.pro

     文件      17997  2014-03-13 21:56  chat2\chat.pro.user

    ..A..H.     17408  2012-07-03 22:54  chat2\chat.suo

     文件      13219  2010-11-05 14:47  chat2\chat.ui

     文件        575  2012-06-30 23:45  chat2\chat.vcxproj.user

     文件     161862  2010-11-02 21:48  chat2\ico\myicon.ico

     文件         46  2014-03-13 21:55  chat2\icon.rc

     文件          0  2010-11-02 21:48  chat2\icon.txt

     文件      10861  2010-11-02 21:48  chat2\image\20091201_0c5e3cb96bf053f6f8f43xlWxvBTLEnr.png

     文件      12548  2010-11-02 21:48  chat2\image\20091201_2a0f6976569659175fd3PEFlPFnrDS1R.png

     文件       9497  2010-11-02 21:48  chat2\image\20091201_b321df1d9e60373380a0IQzepnVIU3HS.png

     文件       8608  2010-11-02 21:48  chat2\image\20091201_e59eb6d747cef0b2bc89nKJwRb2QIxXh.png

     文件      19201  2010-11-02 21:48  chat2\image\Bin (empty).png

     文件      16155  2010-11-02 21:48  chat2\image\E-Mail.png

     文件       2168  2010-11-02 21:48  chat2\image\fileopen.png

     文件       3200  2010-11-02 21:48  chat2\image\Files.png

     文件       9576  2010-11-02 21:48  chat2\image\Floppy.png

     文件      22074  2010-11-02 21:48  chat2\image\MSN-Messenger.png

     文件       1928  2010-11-02 21:48  chat2\image\textbold.png

     文件       4226  2010-11-02 21:48  chat2\image\textcolor.png

     文件       1164  2010-11-02 21:48  chat2\image\textitalic.png

     文件       1644  2010-11-02 21:48  chat2\image\textunder.png

     文件       8338  2010-11-02 21:48  chat2\image\User.png

     文件        234  2014-03-13 21:54  chat2\main.cpp

     文件        371  2014-03-13 21:43  chat2\resource.qrc

     文件       3657  2014-03-13 21:02  chat2\tcpclient.cpp

     文件       1058  2014-03-13 21:20  chat2\tcpclient.h

     文件       1872  2010-11-02 21:48  chat2\tcpclient.ui

............此处省略12个文件信息

评论

共有 条评论