文章目錄
-
- 一、什麼是Qt?
- 二、設計ui界面
- 三、編寫Qt程式
- 四、制作ico圖示
- 五、下載下傳安裝序列槽調試助手
-
- 5.1友善調試助手
- 5.2虛拟序列槽驅動
- 六、最終實作效果
一、什麼是Qt?
Qt是一個跨平台的C++圖形使用者界面應用程式架構。它為應用程式開發者提供建立藝術級圖形界面所需的所有功能。它是完全面向對象的,很容易擴充,并且允許真正的元件程式設計。
基礎知識這裡就不詳細講啦,推薦黑馬程式員的Qt教程(有第一部分和第二部分)源碼在是視訊下方第一條評論中可以找到。(沒有找到的話可以在評論下方發郵箱給我,我發給你~)
二、設計ui界面

其他部分的話就是彈簧和水準垂直結構了
三、編寫Qt程式
main.cpp
#include "serial.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Serial w;
w.show();//視窗預設是隐藏的,需要人為顯示
return a.exec();
}
打開序列槽(打開之後會序列槽名稱和波特率資料預設為第一個)可以在打開之後再進行修改設定
void Serial::btn_open_port(bool)
{
//qDebug() << "ok";
qDebug()<<ui->cmb_port_name->currentIndex();//printf 0
switch(ui->cmb_port_name->currentIndex())
{
/*---------------序列槽名稱---------------*/
case 0:
global_port.setPortName("COM1");
break;
case 1:
global_port.setPortName("COM2");
break;
case 2:
global_port.setPortName("COM3");
break;
case 3:
global_port.setPortName("COM4");
break;
case 4:
global_port.setPortName("COM5");
break;
case 5:
global_port.setPortName("COM6");
break;
case 6:
global_port.setPortName("COM7");
break;
default:
global_port.setPortName("COM8");
}
/*---------------波特率baud---------------*/
switch (ui->cmb_baud_rate->currentIndex())
{
case 0:
global_port.setBaudRate(QSerialPort::Baud115200);
break;
case 1:
global_port.setBaudRate(QSerialPort::Baud57600);
break;
case 2:
global_port.setBaudRate(QSerialPort::Baud38400);
break;
case 3:
global_port.setBaudRate(QSerialPort::Baud19200);
break;
case 4:
global_port.setBaudRate(QSerialPort::Baud9600);
break;
case 5:
global_port.setBaudRate(QSerialPort::Baud4800);
break;
case 6:
global_port.setBaudRate(QSerialPort::Baud2400);
break;
default:
global_port.setBaudRate(QSerialPort::Baud1200);
break;
}
//打開序列槽
global_port.open(QIODevice::ReadWrite);
ui->lab_status->setText("連接配接");
}
關閉序列槽
//關閉序列槽比較簡單,直接關閉就好
void Serial::btn_close_port(bool)
{
global_port.close();
ui->lab_status->setText("斷開連接配接");
}
發送資料
/*-----------發送資料-----------------*/
void Serial::btn_send_data(bool)
{
QString data = ui->lint_send_data->text();
QByteArray array = data.toLatin1();//QString---->QByteArray
global_port.write(array);
}
接收資料
/*-----------接收資料-----------------*/
void Serial::receive_data()
{
QByteArray array = global_port.readAll();
qDebug()<<array;
if(ui->checkBox->checkState()==Qt::Checked)
{
ui->plainTextEdit->insertPlainText(QString(array.toHex(' ').append(' ')));
}
else
{
ui->plainTextEdit->insertPlainText(QString(array));
}
}
四、制作ico圖示
也就是這下面圈起來的玩意
ico圖示線上制作
把下載下傳下來的檔案任意命名,但必須是英文,比如s.ico
那就在項目檔案Serial.pro中加入
RC_ICONS = s.ico
然後把下載下傳下來的檔案剪切到你的工程目錄下,如下
然後就完美啦~運作就可以看到了
五、下載下傳安裝序列槽調試助手
5.1友善調試助手
下載下傳位址
或者随便上網搜一下哈哈,然後安裝好了就好
然後打開這個exe檔案,就可以用了
5.2虛拟序列槽驅動
這個虛拟序列槽驅動就有點類似我們的資料線,就是對某個序列槽進行操作的一個轉換工具(軟體),它完成了你對這些端口操作的資料格式、協定的轉換。下載下傳位址
下載下傳安裝好打開如下exe檔案即可
如果要連接配接COM1和COM2,就在如下B中選擇COM1和COM2,然後點選C(添加端口),就可以看到A了,看到A就說明可以了,如果要連接配接COM3和COM4的話就同理。。
六、最終實作效果
用Qt寫一個序列槽助手