QT5串口上位机——从零开始教你写04
简单串口编写
4.配置UI界面的串口打开和关闭
设置串口参数配置数组
从之前的Serial配置可知,我们是通过配置ui界面的QCombobox来进行串口参数的配置的,因此想要配置的参数应用到Serial,需要设置结构体,通过信号与槽来传递结构体的值,来传递配置参数。
这里需要在mainwidget.h中添加 #include “SerialInfo.h” 头文件,并添加一个私有成员 info。
private:
Ui::MainWidget *ui;
QIntValidator* isBaudRateRange;//设置波特率输入范围
Sinfo *info=nullptr; //设置串口配置的参数
注:
- Sinfo *info可以见之前配置的内容。
在mainwidget.h中创建 void getComboBoxInfo(); 用以获取配置参数。
具体内容如下:
void MainWidget::getComboBoxInfo()
{
if(info!=nullptr) //删除原先内存空间
{
delete info;
}
this->info = new Sinfo;//防止内存泄漏,关闭窗口时 delete info;
this->info->comName=ui->comPortName->currentText(); //设置串口号
this->info->baudRate=ui->comBaudRate->currentText().toInt(); //设置波特率
this->info->dataBits=ui->comDataBits->currentIndex(); //设置数据位
this->info->parity=ui->comParity->currentIndex(); //设置检验位
this->info->stopBits=ui->comStopBits->currentIndex(); //设置停止位
this->info->flowControl=0 ; //设置流控位,默认值为0无流控
this->info->Encode=ui->comEncode->currentIndex(); //设置编码格式
}
注:
- 其中,info在退出时要delete。
设置完参数时,记得放进MainWidget中执行。但MainWidget中之在打开程序时执行一次,因此,需要添加信号与槽来更新info的参数。由于使用的是QCombobox,查阅帮助文档可知,能用到的信号函数为currentIndexChanged();。
具体内容:
从截图中我们可以看出,当QCombobox的index变化时,可以返回两种参数:一种是当前所选变化的index值,另一种是当前所选变化的text的值。
因此可以在mainwidget.h中创建 void updataComboBox(); 用以更新配置参数。
具体内容如下: