Qt中是否有一个类似于Delphi中的delete()和copy()的函数。
我正在从通过USB连接到计算机的设备读取数据,并将其存储为QString
。读取的每一行都不相同(或者即使使用readyRead也会被缩短)。我创建了一个缓冲区字符串,以将这些“半字符串”(例如string =“ This”而不是“ This is a string#”)添加到其中,现在我想复制字符串直到'#',然后删除该字符串因此,如果添加了新的“半刺”,我可以对它们进行相同的操作。下面的代码是我尝试的
void MainWindow::readSerial()
{
QByteArray serialData = port->readAll();
serialBuffer += serialData;
QByteArray serialString = serialBuffer.
qDebug() << serialString;
ui -> textEdit ->append(serialString);
//serialBuffer.replace(serialString,"");
}
上面的代码仅返回一个空字符串。
最佳答案
void MainWindow::readSerial()
{
QByteArray serialData = port->readAll();
serialBuffer += serialData;
QString serialString = serialBuffer.mid(serialBuffer.indexOf("$"),serialBuffer.indexOf("\r\n"));
qDebug()<< "index of \r\n" << serialBuffer.indexOf("\r\n");
qDebug() << "SerialString" <<serialString;
ui -> textEdit ->append(serialString);
qDebug() << "SerialBuffer: " << serialBuffer;
serialBuffer.replace(serialString + "\r\n","");
}
上面的代码有效。谢谢大家
问候