QT中LineEdit里面的串口值,只有开始第一回读取的信息,后面的串口信息不发生变化

1.怎么让lineedit里面的值随串口发送过来的信息发生变化

void Widget::readData()
{
    //设置缓冲区接受数据
    QByteArray buf;
    buf = serial->readAll();
    if(!buf.isEmpty()){
        QString str =ui->textEdit->toPlainText();
        str +=tr(buf);
        ui->textEdit->clear();
        ui->textEdit->append(str);
        str = str.simplified();
                QString x = str.mid(5,2);//湿度
                QString y = str.mid(11,2);//温度
                QString a = str.mid(13,1);//光照强度
                QString z = str.mid(40,7);//气压
                ui->HEdit->setText(x);
                ui->TEdit->setText(QString(y));
                ui->IEdit->setText(a);
                ui->AEdit->setText(z+"hPa");


    }
    buf.clear();

先加个qDebug()来看是串口值是否连续传到这个函数里,然后在慢慢调试

void Widget::readData()
这个怎么调用的,是放在定时器里了么