设为首页 加入收藏

TOP

我的专属QQ功能篇(二)
2014-11-23 22:30:38 来源: 作者: 【 】 浏览:1
Tags:专属 功能

接上篇

好友列表

\

相关初始化, 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);

}

发送处理

void chatform::on_sendButton()

{

QString sendText = ui->textEdit->toPlainText();

if(!sendText.isEmpty())

{

QString windowTitle = this->windowTitle().replace("].","");

QString toId = QString(windowTitle.split("[").at(1));

QString msgType = "MSG_CLIENT_CHAT";

QByteArray block;

QDataStream out(&block, QIODevice::WriteOnly);

out.setVersion(QDataStream::Qt_4_6);

out << (quint16)0 << msgType << usrname << toId << sendText;

out.device()->seek(0);

out << (quint16)(block.size() - sizeof(quint16));

udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(serverIp), (quint16)serverPort.toUInt()+1);

ui->listWidget->addItem("I say :\n" + sendText + "\n");

}

ui->textEdit->clear();

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇我的专属QQ功能篇 (一) 下一篇善用backtrace解决大问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: