計)
目錄一、界面設(shè)計二、程序設(shè)計附件有程序源碼三、驗證Windows下將QT項目生成可執(zhí)行文件exe一、界面設(shè)計首先正常創(chuàng)建一個新的工程的流程創(chuàng)建完成之后在.pro文件中添加serialport,即在頭文件中添加串口類進入UI界面編輯界面的大小為800480先實現(xiàn)一個串口選擇實現(xiàn)多個將所有組件進行水平布局設(shè)計比例垂直比例設(shè)為5:2接下來就要補充下QComboBox的內(nèi)容波特率停止位數(shù)據(jù)位校驗位如果我們不知道有哪些可以直接去幫助文檔里面找即可以搜索例如至此界面設(shè)計結(jié)束接下來將會進行程序設(shè)計二、程序設(shè)計附件有程序源碼像串口選擇這里的QComboBox組件就不能像上面這樣一個一個添加進去不行因為串口是未知的。其實QT提供了一個類可供掃描本機或者開發(fā)板上的可用串口它會將串口信息儲存到一個容器里面遍歷這個容器就可以提取這些串口的信息即在頭文件中添加QSerialPortInfo串口信息類。那怎么把本機或者開發(fā)板上的可用串口添加到QComboBox里面呢遍歷有一個方法foreach循環(huán)添加串口信息串口名字一個參數(shù)var是變量一個參數(shù)container是容器。串口信息類會掃描本機或者開發(fā)板上的串口會返回一個串口信息類的容器然后我們從這個容器里面讀取串口信息。用串口的這個類設(shè)置這個串口//mainwindows.cpp void MainWindow::on_pushButton_clicked(bool checked) { if(checked){ //設(shè)置要打開的串口名字 serialport-setPortName(ui-comboBox-currentText()); //設(shè)置波特率 serialport-setBaudRate(ui-comboBox_2-currentText().toInt()); //設(shè)置停止位 serialport-setStopBits(QSerialPort::StopBits(ui-comboBox_3-currentText().toInt())); //設(shè)置數(shù)據(jù)位 serialport-setDataBits(QSerialPort::DataBits(ui-comboBox_4-currentText().toInt())); //設(shè)置校驗位 switch (ui-comboBox_5-currentIndex()) { case 0: serialport-setParity(QSerialPort::NoParity); break; case 1: serialport-setParity(QSerialPort::EvenParity); break; case 2: serialport-setParity(QSerialPort::OddParity); break; case 3: serialport-setParity(QSerialPort::SpaceParity); break; case 4: serialport-setParity(QSerialPort::MarkParity); break; default: break; } //設(shè)置流控為無 serialport-setFlowControl(QSerialPort::NoFlowControl); if(!serialport-open(QIODevice::ReadWrite)) { QMessageBox::about(this, 錯誤, 串口打開失敗可能已經(jīng)被占用); return; } //打開串口后各選項變?yōu)榛疑床豢蛇x狀態(tài) ui-comboBox-setEnabled(false); ui-comboBox_2-setEnabled(false); ui-comboBox_3-setEnabled(false); ui-comboBox_4-setEnabled(false); ui-comboBox_5-setEnabled(false); ui-pushButton-setText(關(guān)閉串口); } else { //關(guān)閉串口 serialport-close(); ui-comboBox-setEnabled(true); ui-comboBox_2-setEnabled(true); ui-comboBox_3-setEnabled(true); ui-comboBox_4-setEnabled(true); ui-comboBox_5-setEnabled(true); ui-pushButton-setText(打開串口); } }在使用串口類之前要先實例化對象實例化之后打開串口的槽函數(shù)方才生效接下來實現(xiàn)“掃描本機的串口并且添加到下拉框列表”創(chuàng)建一個槽函數(shù)連接槽函數(shù)最后實現(xiàn)發(fā)送和清除發(fā)送的槽函數(shù)清除發(fā)送同理分別編寫三、驗證Windows下將QT項目生成可執(zhí)行文件exe生成工程名.exe文件如下找到后將工程名.exe文件復(fù)制到一個空的文件夾中點擊它并且將命令行工具定位到空的文件夾目錄下windeployqt 工程名.exe執(zhí)行成功后來到空的文件夾下執(zhí)行后最終效果如下