QT串口获取串口设备名称

news/2024/11/30 0:51:19/

QT串口获取串口设备名称

  • 前言`
  • 一、实现效果
  • 二、实现代码
    • 1.检测可用串口,并把名称输出到ComboBox中,并自动根据设备名称的长度调整ComboBox下拉框的长度
  • 总结


前言`

最近在用QT弄一个串口上位机,以前用QT做的串口工具在选择串口的时候只能通过串口号选择,在有多个串口设备的时候不是很方便,所以这次就想着搞成选择的时候可以显示串口设备名称的方式。


一、实现效果

在这里插入图片描述

在这里插入图片描述
目前家里就只有一个CH340的串口设备,但实现效果是可以看到还是比较成功的,显示的设备名称和串口号都是和电脑设备管理器一致的。

二、实现代码

1.检测可用串口,并把名称输出到ComboBox中,并自动根据设备名称的长度调整ComboBox下拉框的长度

代码如下:

	int max_len = 0;int pt_val = this->font().pointSize();//获取字体的磅值QList <QSerialPortInfo> serialInfo_list = QSerialPortInfo::availablePorts();//获取到可用串口设备PortStringList.clear();		//将用于存放串口设备名称的List清空ui->portSelectcomboBox->clear();	//把下拉选择框也清空,因为这里是定时调用这段函数来扫描串口设备,所以每次记得要清空List和ComboBox,不然后面尾插就会重复了。。。const auto infos = QSerialPortInfo::availablePorts();for (const QSerialPortInfo &info : infos){/* 先把串口号放到List */PortNameStringList += info.portName();//这是一个QStringList,是用来放串口设备名称字符串的PortStringList+= info.portName();//这个QStringList是用来放串口号的,因为后面选择串口的时候只能通过串口号去选择}for(int i = 0;i < serialInfo_list.size();i++){PortNameStringList[i].append(serialInfo_list.at(i).description());//通过description()吧SerialPortInfo里面的串口设备名称转为QString并尾插到放串口设备名称的容器里,这样就能实现显示串口号和设备名称了max_len = (PortNameStringList.at(i).length()>max_len)? PortNameStringList.at(i).length():max_len;//获取设备名称最长的的长度,用来配置下拉选项框的长度}ui->portSelectcomboBox->view()->setFixedWidth(max_len*pt_val*2);//配置下拉选项框的最大长度ui->portSelectcomboBox->addItems(PortNameStringList);//将设备名称输出到对应的ComBox里

总结

新人的第一篇文章,请多多指教

关于根据串口设备名称长度调整ComboBox下拉列表宽度,参考这个博主的文章https://blog.csdn.net/qq_31073871/article/details/79851430


http://www.ppmy.cn/news/252083.html

相关文章

串口设备初始化

通常我们认为以计算机CPU为核心&#xff0c;其外部的所有的设备都可以称为是外部输入输出设备。例如计算机中的显示器就是一个输出设备&#xff0c;它的作用是将一些数字信号转化为图形信号显示在电子屏幕上&#xff0c;其数据是由内向外流动&#xff0c;因此我们称显示器为输出…

多个串口设备的识别

文章目录 前言一、CH34xSerCfg配置功能&#xff08;Product String&#xff09;二、多个串口设备的识别总结 前言 在电脑上不同串口设备会生成不同的COM口号&#xff0c;若多个串口设备同时插入电脑时如何识别出设备之间的区别。接下将介绍一种方法通过读取芯片产品字符串&…

C# (江湖熟手)- 串口设备对接

基本概况 串口介绍 串口&#xff1a;是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去&#xff0c;同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路&#xff0c;我们称为串行接口电路。 串口通信&#xff08;Seri…

linux系统下串口设备和串口号绑定

3.7 linux系统下串口设备和串口号绑定 3.7.1 问题由来 ​在ROS小车的开发过程中,需要使用ROS通信串口模块、激光雷达的串口模块、IMU的串口模块等,为了防止每次开机这些设备的串口号发生变动,所以需要对串口号与串口设备绑定;为了更好的识别串口,我们也可以对串口号进行…

【Vue】二:Vue核心处理---vue的其它指令和自定义指令

文章目录 1.vue的其它指令1.1v-text 和 v-html1.2 v-cloak1.3 v-once1.4 v-pre 2. 自定义指令2.1 函数式2.2 对象式2.3.定义全局的指令 1.vue的其它指令 1.1v-text 和 v-html v-text&#xff1a;当做文件解析。 v-html&#xff1a;当做 HTML 代码解析。 1.2 v-cloak v-cloa…

linux串口设备配置方法(固定ID)

硬件开发时有时候需要配置USB串口&#xff0c;一般配置方式有以下两种&#xff1a; 一、对于没有重复ID的情况 1.1、查看设备ID&#xff1a; 输入指令&#xff1a; lsusb例如图片中的最上面0951:1666就是对应Kingston Technology DataTraveler 100 G3/G4/SE9 G2设备的ID号&…

串口

dbg_print怎么打开&#xff1f; 哪个宏控制呢&#xff1f; DRV_DEBUG打开后串口还是没有信息出来 make/drv/drv.def中加入DRV_DEBUG 我一般在dbgprint.c里面直接修改#if 1//def DRV_DEBUG#if 1//(!defined(IC_MODULE_TEST)) ---------------------------------------------…

C++串口同步和异步的读取与串口设备编程

本文主要讲述如何对串口进行高效率的读写&#xff0c;当串口中数据到达时立即读取进行处理&#xff0c;以及如何将该方法运用到串口设备编程中。为了使得程序更加清晰文中的代码去除了异常处理的情况。文中加粗的文字相应的比较重要&#xff0c;需要多注意。当然文中会有错误&a…