有些时候 connect 函数采用 labmda 可以正常输出,如下面的 qDebug() 可以执行
QSerialPort *port;
void Mainwindow::init()
{
connect(port, &QSerialPort::readyRead, [=](){
qDebug() << port->readAll();
});
}
但是改为常规方式时,槽函数无法执行,也就是 qDebug() 无法执行
QSerialPort *port;
void Mainwindow::init()
{
connect(port, &QSerialPort::readyRead, this, &Mainwindow::handleData);
}
void Mainwindow::handleData()
{
qDebug() << port->readAll();
}
此时可尝试在 connect() 函数中加入第五个参数 Qt::DirectConnection
connect(port, &QSerialPort::readyRead, this, &Mainwindow::handleData, Qt::DirectConnection);