Signal readyRead() 不执行槽

Signal readyRead() does not execute slot

我有一个比较粗糙的设备(两台电脑通过COM口连接),我必须在QSerialPort之前让它工作。这个想法很简单:数据将通过每个 COM 端口从一个组件发送到另一个组件。 发射器工作正常,通过软件检查,我在接收数据时遇到问题。我是按 QSerialPort 做的,如下所示:

一开始我设置端口:

QSerialPort *serialport = new QSerialPort();
serialport->open(QIODevice::ReadOnly);
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);

然后我准备像这样捕获数据:

connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );

和插槽 change_gear 但我只有: qDebug()<<"Data has beed recieved",

但是这个槽还没有被执行过! 所以,我只是不明白这里出了什么问题以及为什么我不能以这种简单的方式从 COM 端口读取数据..

OS - Windows 8, Qt 5.8.0 MinGW 32

这样试试

QSerialPort *serialport = new QSerialPort();
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);

connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );

serialport->open(QIODevice::ReadOnly);

端口配置好后打开,信号连接到slot