到目前为止,我的应用程序运行正常。但是有一个问题。我们需要从serialport读取数据。此数据可能只包含字节,因此使用readLine()函数读取可能会给我们提供错误或没有数据。现在这是代码,以便您了解我的问题。
void MainWindow::readData()
{
while(serial->canReadLine())
{
QByteArray data = serial->readLine();
emit serialPortData(data, false);
QString myString(data);
if(myString.startsWith("SensorUpdate"))
emit sensorData(myString) ;
}
}
我正在读取数据,如果它以字符串(某些值)开头,我会将这些值发送到另一个更新QTableWidget的类。但是这个“startsWith()”只有在我从串口读取一行时才有效。我想使用readAll函数并可能存储字符,直到找到新行或类似的东西。你能救我吗?
谢谢!
答案 0 :(得分:0)
在GUI中,您可以将QString拆分为\ n中的list拆分。然后循环列表并像往常一样处理每个列表。因此,如果你输入的不止一个,那就无所谓了。
这就是你必须要做的事情。
void SensorWidget::fillTable(QString serialString)
{
tempList = serialString.split("\r\n");
for(int i=0;i<tempList.size();i++)
{
//filll table code
}
}