一、描述

使用静态函数生成 QSerialPortInfo 对象列表。列表中的每个 QSerialPortInfo 对象代表一个串行端口,可以查询端口名称、系统位置、描述和制造商。QSerialPortInfo 类还可以用作 QSerialPort 类的 setPort() 方法的输入参数。

二、Qt Example

  1. #include <QCoreApplication>
  2. #include <QSerialPortInfo>
  3. #include <QTextStream>
  4. int main(int argc, char* argv[])
  5. {
  6. QCoreApplication coreApplication(argc, argv);
  7. QTextStream out(stdout);
  8. const auto serialPortInfos = QSerialPortInfo::availablePorts();
  9. out << "Total number of ports available: " << serialPortInfos.count() << Qt::endl;
  10. for (const QSerialPortInfo& serialPortInfo : serialPortInfos) {
  11. // 返回串行端口的名称。
  12. out << "Port: " << serialPortInfo.portName() << Qt::endl;
  13. // 返回串口的系统位置
  14. out << "Location: " << serialPortInfo.systemLocation() << Qt::endl;
  15. // 返回串行端口的描述字符串(如果可用);否则返回空字符串。
  16. out << "Description: " << serialPortInfo.description() << Qt::endl;
  17. // 返回串行端口的制造商字符串(如果可用);否则返回空字符串。
  18. out << "Manufacturer: " << serialPortInfo.manufacturer() << Qt::endl;
  19. // 返回串口的序列号字符串(如果可用);否则返回空字符串。
  20. out << "Serial number: " << serialPortInfo.serialNumber() << Qt::endl;
  21. // 返回串行端口的16位供应商编号(如果可用);否则返回零。
  22. if (serialPortInfo.hasProductIdentifier()) { // 16->16进制
  23. out << "roduct Identifier: "
  24. << QByteArray::number(serialPortInfo.vendorIdentifier(), 16) << Qt::endl;
  25. }
  26. // 如果存在有效的 16 位产品编号,则返回 true;否则返回false
  27. if (serialPortInfo.hasProductIdentifier()) { // 16->16进制
  28. out << "roduct Identifier: "
  29. << QByteArray::number(serialPortInfo.productIdentifier(), 16) << Qt::endl;
  30. }
  31. }
  32. return 0;
  33. }

三、参考链接

例子 https://doc.qt.io/qt-5/qtserialport-cenumerator-example.html QSerialPortInfo文档 https://doc.qt.io/qt-5/qserialportinfo.html