思维导图
客户端
//readyRead()信号对应的槽函数
void Widget::readyRead_slot()
{
//读取服务器发来的数据
QByteArray msg = socket->readAll();
//获取用户名长度
int len = userName.size();
//获取服务器数据前用户名长度大小的字符串
QString str = (QString::fromLocal8Bit(msg)).mid(0,len);
//获取剩下数据长度
int len2 = (QString::fromLocal8Bit(msg)).size();
//自己发送的信息
if(str == userName)
{
//获取自己发送的信息
str = (QString::fromLocal8Bit(msg)).mid(len+1,len2-len);
//拼接
str = str + ":" + userName;
//将数据放入ui界面
ui->listWidget->addItem(str);
//找到listwidget的最后一行
QListWidgetItem* item = ui->listWidget->item(ui->listWidget->count()-1);
//设置右显示
item->setTextAlignment(Qt::AlignRight);
}
else//其他人发送的信息
{
//将数据放入ui界面上
ui->listWidget->addItem(QString::fromLocal8Bit(msg));
}
}