QT实现群聊私聊


QT聊天,群聊私聊,网络编程,控件,多线程
资源截图
代码片段和文件信息

//list.cpp对登录用户列表界面类进行 实现
//list.cpp

#include 
#include “list.h“
#include 

List::List(QString qnameQString strListServer *serv)
{
    server = serv;//创建一个套接字
    name = qname;
    list.setupUi(this);
    this->setWindowtitle(name + “ - (在线)“);
    //this->setWindowModality(Qt::NonModal);
    QStringList qlist=strList.split(“|“);
    int i=1;
    for(;i        list.listView->addItem(qlist[i]);
    list.listView2->addItem(qlist[0]);
    connect(server->getSocket()SIGNAL(readyRead())thisSLOT(processMessage()));//当有内容被读的时候,发出read()信号

   //双击的时候打开聊天窗口
   connect(list.listViewSIGNAL(itemDoubleClicked(QListWidgetItem *))thisSLOT(openWin(QListWidgetItem *)));//用户列表

     connect(list.listView2SIGNAL(itemClicked(QListWidgetItem *))thisSLOT(openWin(QListWidgetItem *)));
}

void List::openWin(QListWidgetItem *item)
    {
        Message *m = mlist.value(item->text());
        if(m == 0)
        {
            if(item->text()==“广播“)
            {
                m = new Message(this name  “***“server);
                mlist.insert(“***“m);
            }
            else
            {
            m=new Message(thisnameitem->text()server);
            mlist.insert(item->text()m);
            }
        }
        m->show();
    }


void List::processMessage()//在线用户的显示
{
    QByteArray data;
    server->recvMessage(&data);
    QString str(data);
    //QMessageBox::warning(this““str);
    QStringList qlist = str.split(“|“);
    if(qlist[1] == “add“)//添加用户
    {
        list.listView->addItem(qlist[0]);
    }
    else if(qlist[1] == “quit“)//删除
    {
        int i=0;
        while(list.listView->item(i) != 0)
        {
            if(list.listView->item(i)->text() == qlist[0])
            {
                //QMessageBox::warning(this““list.listView->item(i)->text());
                //list.listView->removeItemWidget(list.listView->item(i));
                list.listView->takeItem(i);//显示用户

                Message *m = mlist.value(qlist[0]);
                if(m != 0)
                {
                    m->close();
                    mlist.remove(qlist[0]);
                }
                break;
            }
            i++;
        }
    }
    else
    {
        Message *m=mlist.value(qlist[0]);
        if(m ==0)
        {
             m=new Message(thisnameqlist[0]server);
            QHash::iterator i;
            for(i=mlist.begin();i!=mlist.end();i++)
            {
                if(i.key()!=qlist[0])
                {
                    mlist.insert(qlist[0]m);
                }
            }
        }
        m->show();
        m->setTxt(qlist[1]);
    }
}


void List::on_pushButton_2_clicked()
{
       QProcess *process =new QProcess;
       process->start(“C:\Program Files\TTPlayer\TTPlayer.exe“);
}

void List::on_notepadButton_clicked()
{
       Q

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

     文件       3327  2010-12-07 23:53  Chat V 2udpClientlist.cpp

     文件       1072  2010-12-07 23:01  Chat V 2udpClientlist.h

     文件       5179  2010-12-07 23:20  Chat V 2udpClientlist.ui

     文件       1743  2010-12-07 20:33  Chat V 2udpClientlogin.cpp

     文件        528  2010-12-07 20:16  Chat V 2udpClientlogin.h

     文件       5326  2010-12-07 20:32  Chat V 2udpClientlogin.ui

     文件        521  2010-03-17 14:33  Chat V 2udpClientmain.cpp

     文件       5974  2010-12-06 12:48  Chat V 2udpClientMakefile

     文件       8281  2010-12-06 12:48  Chat V 2udpClientMakefile.Debug

     文件       8443  2010-12-06 12:48  Chat V 2udpClientMakefile.Release

     文件       3041  2010-12-05 16:03  Chat V 2udpClientmessage.cpp

     文件        806  2010-12-05 16:03  Chat V 2udpClientmessage.h

     文件       9364  2010-12-07 20:43  Chat V 2udpClientmessage.ui

     文件        229  2010-12-05 20:59  Chat V 2udpClientobject_script.udpClient.Debug

     文件        251  2010-12-05 20:59  Chat V 2udpClientobject_script.udpClient.Release

     文件       1536  2010-12-07 20:13  Chat V 2udpClientserver.cpp

     文件        694  2010-12-07 20:31  Chat V 2udpClientserver.h

     文件        467  2010-12-05 13:40  Chat V 2udpClientudpClient.pro

     文件       7960  2010-12-08 00:00  Chat V 2udpClientudpClient.pro.user

     文件      10667  2010-05-05 09:05  Chat V 2udpClientudpClient.pro.user.1.3

     文件       6219  2010-12-07 23:20  Chat V 2udpClientui_list.h

     文件       5699  2010-12-07 20:33  Chat V 2udpClientui_login.h

     文件       9252  2010-12-07 20:43  Chat V 2udpClientui_message.h

     文件       2207  2010-03-18 10:30  Chat V 2udpClientui_udpclient.h

     文件     481826  2010-12-07 23:53  Chat V 2udpClientdebuglist.o

     文件     451465  2010-12-07 23:20  Chat V 2udpClientdebuglogin.o

     文件     202911  2010-12-07 20:33  Chat V 2udpClientdebugmain.o

     文件       5989  2010-12-06 13:17  Chat V 2udpClientdebugMakefile

     文件       7949  2010-12-06 13:17  Chat V 2udpClientdebugMakefile.Debug

     文件       8123  2010-12-06 13:17  Chat V 2udpClientdebugMakefile.Release

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)