接上篇
✿好友列表

相关初始化, UDP
void panel::init() { udpSocket = new QUdpSocket(this); udpSocket->bind(6666); QString msgType = "MSG_CLIENT_NEW_CONN"; QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_6); out << (quint16)0 << msgType << usrname; out.device()->seek(0); udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(ip), (quint16)port.toUInt()+1); connect(this->udpSocket, SIGNAL(readyRead()), this, SLOT(recvMsg())); }列表显示
void panel::on_itemDoubleClicked(QListWidgetItem* item) { QString nameStr = ui->usrlistWidget->currentItem()->text(); nameStr.replace("\n",""); chatform *c = chatformHash.value(nameStr); if(c == 0) { c = new chatform(this->usrname,this->ip,this->port, udpSocket); c->setWindowTitle("chatting with " + nameStr + "."); chatformHash.insert(nameStr,c);//?? } c->setWindowFlags(Qt::FramelessWindowHint); c->setAttribute(Qt::WA_TranslucentBackground); c->show(); }✿聊天窗口

聊天信息的显示处理
void chatform::displayText(QString nickname, QString usrname, QString text) { QListWidgetItem *displayItem = new QListWidgetItem(nickname + "(" + usrname + ") :\n" + text + "\n"); ui->listWidget->addItem(displayItem); }
发送处理
本文介绍了一个基于QT框架的UDP聊天应用程序实现细节。包括好友列表的展示、聊天窗口的设计、聊天消息的发送和接收等功能。通过QUdpSocket进行网络通信,并利用QDataStream进行数据打包和解包。
5724

被折叠的 条评论
为什么被折叠?



