QT串口助手(二):参数配置

本文详细介绍了使用QT5.12.10+MinGW环境开发串口应用的过程,包括串口参数配置(波特率、数据位、停止位、校验位)、串口设备查询与显示、自定义波特率实现、QComboBox控件的下拉列表自适应显示。通过信号槽机制实现串口的打开与关闭,并提供了串口设备的刷新功能。

作者:zzssdd2

E-mail:zzssdd2@foxmail.com

一、前言

开发环境:Qt5.12.10 + MinGW

主要实现功能

  • 串口参数的配置:波特率数据位停止位校验位
  • 本机串口设备的查询与添加显示
  • 串口设备的手动更新与打开关闭

涉及的知识点

  • 串口类QSerialPortQSerialPortInfo的使用
  • 自定义波特率的实现
  • QComboBox下拉列表自适应文本长度显示
  • 控件QPushButtonQComboBox的使用
    在这里插入图片描述

二、功能实现

下面开始逐步讲解以上列举的功能

2.1、串口设备的查询添加

创建一个串口设备信息列表和串口设备号列表,遍历本机可用串口然后添加到列表中,将设备信息列表显示在对应的QComboBox控件中,设备号列表用来后面打开串口设备使用。

/* 遍历可用串口设备 */
QStringList SerialPort_Name;
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
    SerialPort_Name << info.portName()+':'+info.description();
    serialDevice << info.portName();
}
/* 添加到串口设备显示框 */
ui->SerialNum_Box->addItems(SerialPort_Name);

2.2、下拉列表自适应

此时已经将串口设备信息添加到下拉框中了,但是下拉框此时是固定长度,如果串口设备信息比较长则无法显示完全(以省略号展示),那么就需要实现下拉框根据设备信息字符串长度适配功能。原理就是遍历列表中所有设备信息字符串的长度,找出最大值然后将下拉框长度设置到能完全显示最大长度字符串。

/* 获取最长字符串 */
int maxlen = 0;
for (int index = 0; index < ui->SerialNum_Box->count(); index++)
{
    if (ui->SerialNum_Box->itemText(index).length() > maxlen)
    {
        maxlen = ui->SerialNum_Box->itemText(index).length();
    }
}
/*获取字体磅值转换为像素值*/
int fontsize = ui->SerialNum_Box->font().pointSize();//获取字体的磅值
ui->SerialNum_Box->view()->setFixedWidth(fontsize * maxlen * 0.75);//设置像素值

这里涉及字体磅与像素对应关系,因为setFixedWidth函数参数单位是像素。下面列出字号不同单位对照表:

中文字号 英文字号(磅) 毫米 像素
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值