拔下USB串行电缆时发送信号

Jar*_*ice 5 c++ qt qt-signals qtserialport qtcore

有没有办法使用Qt发送信号或任何其他方式来判断USB串口线是否已拔下?

lpa*_*app 8

您可以error在QtSerialPort附加组件中使用QSerialPort类的信号.请参阅我们的文档中的详细信息.

http://qt-project.org/doc/qt-5.1/qtserialport/qserialport.html#error-prop

你需要写这个基本上:

connect(mySerialPort, SIGNAL(error(QSerialPort::SerialPortError)), this,
        SLOT(handleError(QSerialPort::SerialPortError)));

...

void MyClass::handleError(QSerialPort::SerialPortError error)
{
    if (error == QSerialPort::ResourceError) {
        QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
        closeSerialPort();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Qt 5.1 <QtSerialPort可以轻松安装,因为软件包是分发的.但是,我们确保QtSerialPort适用于以前的版本,包括Qt 4.8.X. 在这里,您可以找到Qt 4的说明,以便为您安装:

  • git clone git@gitorious.org:qt/qtserialport.git

  • cd qtserialport

  • QMAKE

  • 使

  • sudo make install.

然后,如果您碰巧使用qmake,则需要在qmake项目文件中包含以下行:

Qt 5: QT += serialport
Qt 4: COMFIG += serialport
Run Code Online (Sandbox Code Playgroud)