QT 下獲取Linux系統的可用串口號,並在下拉框 comboBox 控件上顯示出來


1. 先在UI添加一個下拉框控件 comboBox

  

 2. 添加頭文件

#include <QSerialPortInfo>
#include <QSerialPort>

 3.在 .pro 文件最后加上下面一行代碼

QT += serialport //測試必須要加這個,不然會報各種找不到匹配的函數的錯誤

4.獲取串口號,並在下拉框顯示

    ui->comboBox->clear();   //清空下拉框的顯示 foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())   //通過 QSerialPortInfo 查詢 LInux 系統下的可用串口號;forreach 是增強的for循環,適用於循環次數未知的情況
{

    ui->comboBox->addItem("/dev/"+info.portName()); //把獲取到的串口號顯示在下拉框,“/dev/”是串口節點,獲取串口號是沒辦法獲取到這部分的,只能獲取到 “ttyS*” 這些,為了顯示完整這里加了“/dev/”上去
    }

5.獲取顯示在下拉框的串口號

    QString myCom = ui->comboBox->currentText();  //獲取下拉框串口號
    /* 把QString類型轉換為string類型,QT的字符串類型跟C語言的字符串類型不可用直接引用 */
    char* myComString;
    QByteArray tran = myCom.toLatin1();
    myComString = tran.data();
/* 后面要用open函數打開串口的話,直接調用 myCom 作為串口號掉用即可 */

 6.運行結果

  

 

關於具體的Linux下的串口通信可以參考我的另一篇博客:https://www.cnblogs.com/xingboy/p/14416196.html

 

注意:提示錯誤 QT Unknown module(s) in QT: serialport 的解決方法如下:

  主要原因是你的QT安裝的時候沒有安裝到該串口插件,在控制台輸入以下命令即可 

sudo apt-get install libqt5serialport5
sudo apt-get install libqt5serialport5-dev

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM