使用QT编写串口调试助手代码,实现功能:串口端口号及波特率、停止位等的选择,串口的打开与关闭,接收信息,发送信息。
实际运行效果如下图1:
图1
1、QT界面布局
图2
使用可视化UI设计,在上图2_1处(即图2中红色数字1处,下同)拖动图标到图2_4处即可,双击组件即可对其显示文字进行修改,可以使用小组 (GroupBox)将某些比较集中的组件打包成一个集合,方便布局管理。使用layouts组件可以快速布局。组件与组件之间可以增加spacers(即图2_4中的弹簧)来优化布局效果,在图2_2中可以对对象的名称进行修改(比如我这里将波特率的下拉选择框的对象名称改为了CB_BaudRate),在图2_2中点击layout(图3_1处)可以显示其属性,如图3所示,根据自己需求修改其中的layoutStretch(图3_2处)的值,其值影响该layout中各个分组件(包括弹簧)的默认长度比例。单击组件,在图2_3中即可对组件外观属性进行修改,如字体类型,文字大小。UI界面做好后点击运行,即可得到如图1所示的界面。
图3
2、添加功能组件转到槽功能
UI界面添加好后,右键选项按钮,选择转到槽
图4
对于下拉选择框,选择 currentIndexChanged(int)或者currentTextChanged(QString)都行,具体看自己需要填入的参数,后续程序也要根据此处所选内容来编写,QT会在dialog.h文件中生成如下函数声明,其命名规则为on_对象名_信号名,与此同时,在dialog.cpp中也有相应的函数主体,需要注意的是,1、槽函数没有配备connect函数,他是利用其命名规则(on_对象名_信号名)自动实现connet函数的功能。2、相应函数的函数主体与函数声明是需要对应的,如果要删除槽函数,则应将两个都一起删除。对于按钮,选择clicked()。
图5
dialog.h文件中的函数声明
private slots:
void on_CB_serialPort_currentTextChanged(const QString &arg1);
dialog.cpp文件中的函数主体
void Dialog::on_CB_serialPort_currentTextChanged(const QString &arg1)
{
}
至此UI界面设置已经全部完成。接下来编写相应的槽函数