• 4020阅读
  • 2回复

关于QTextStream从QByteArray读数据的问题 [复制链接]

上一主题 下一主题
离线pywepe
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-18
先上代码,用QudpSocket发送QByteArray

这个是写端
void Widget::sendDatagram(){
    QString msgToSend =this->ui->say->text();
    QByteArray msg;
    QTextStream txtStream(&msg,QIODevice::WriteOnly);
    txtStream<<msg;
    this->ui->say->setText(QString(""));
    this->ui->view->append(msgToSend);
    this->ui->sendBtn->setEnabled(false);
    this->udpskt->writeDatagram(msg,this->addr,this->hisPort);
}



这个是读端
void Widget::processDatagram(QByteArray datagram){
    QTextStream txtStream(datagram);
    QString msg = txtStream.readAll();
    this->ui->view->append(msg);
}

现在的问题是在 this->ui->view->append(msgToSend); 这句只加了一空行在QTextEdit上面,没有显示出我输入的字符串
是不是这里的写或读出了什么问题?
请高手指教
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-18
使用 QDataStream 时要注意一点:怎么写进去 就 怎么读回来。(除非你对 QDataStream比较了解,其实manual中介绍的很详细了)

比如,用
QDataStream &    operator<< ( const char * s )
写入后,就要用
QDataStream &    operator>> ( char *& s )
读出

而用
QDataStream &    operator<< ( QDataStream & stream, const QString & string )
写入的,要用
QDataStream &    operator>> ( QDataStream & stream, QString & string )
读出
离线dbzhang800

只看该作者 2楼 发表于: 2009-12-18
刚没仔细看,发现楼主用的 QTextStream
快速回复
限100 字节
 
上一个 下一个