QT专题之串口编程 -上位机设计 目录一、界面设计二、程序设计附件有程序源码三、验证Windows下将QT项目生成可执行文件exe一、界面设计首先正常创建一个新的工程的流程创建完成之后在.pro文件中添加serialport,即在头文件中添加串口类进入UI界面编辑界面的大小为800480先实现一个串口选择实现多个将所有组件进行水平布局设计比例垂直比例设为5:2接下来就要补充下QComboBox的内容波特率停止位数据位校验位如果我们不知道有哪些可以直接去帮助文档里面找即可以搜索例如至此界面设计结束接下来将会进行程序设计二、程序设计附件有程序源码像串口选择这里的QComboBox组件就不能像上面这样一个一个添加进去不行因为串口是未知的。其实QT提供了一个类可供扫描本机或者开发板上的可用串口它会将串口信息储存到一个容器里面遍历这个容器就可以提取这些串口的信息即在头文件中添加QSerialPortInfo串口信息类。那怎么把本机或者开发板上的可用串口添加到QComboBox里面呢遍历有一个方法foreach循环添加串口信息串口名字一个参数var是变量一个参数container是容器。串口信息类会扫描本机或者开发板上的串口会返回一个串口信息类的容器然后我们从这个容器里面读取串口信息。用串口的这个类设置这个串口//mainwindows.cpp void MainWindow::on_pushButton_clicked(bool checked) { if(checked){ //设置要打开的串口名字 serialport-setPortName(ui-comboBox-currentText()); //设置波特率 serialport-setBaudRate(ui-comboBox_2-currentText().toInt()); //设置停止位 serialport-setStopBits(QSerialPort::StopBits(ui-comboBox_3-currentText().toInt())); //设置数据位 serialport-setDataBits(QSerialPort::DataBits(ui-comboBox_4-currentText().toInt())); //设置校验位 switch (ui-comboBox_5-currentIndex()) { case 0: serialport-setParity(QSerialPort::NoParity); break; case 1: serialport-setParity(QSerialPort::EvenParity); break; case 2: serialport-setParity(QSerialPort::OddParity); break; case 3: serialport-setParity(QSerialPort::SpaceParity); break; case 4: serialport-setParity(QSerialPort::MarkParity); break; default: break; } //设置流控为无 serialport-setFlowControl(QSerialPort::NoFlowControl); if(!serialport-open(QIODevice::ReadWrite)) { QMessageBox::about(this, 错误, 串口打开失败可能已经被占用); return; } //打开串口后各选项变为灰色即不可选状态 ui-comboBox-setEnabled(false); ui-comboBox_2-setEnabled(false); ui-comboBox_3-setEnabled(false); ui-comboBox_4-setEnabled(false); ui-comboBox_5-setEnabled(false); ui-pushButton-setText(关闭串口); } else { //关闭串口 serialport-close(); ui-comboBox-setEnabled(true); ui-comboBox_2-setEnabled(true); ui-comboBox_3-setEnabled(true); ui-comboBox_4-setEnabled(true); ui-comboBox_5-setEnabled(true); ui-pushButton-setText(打开串口); } }在使用串口类之前要先实例化对象实例化之后打开串口的槽函数方才生效接下来实现“扫描本机的串口并且添加到下拉框列表”创建一个槽函数连接槽函数最后实现发送和清除发送的槽函数清除发送同理分别编写三、验证Windows下将QT项目生成可执行文件exe生成工程名.exe文件如下找到后将工程名.exe文件复制到一个空的文件夹中点击它并且将命令行工具定位到空的文件夹目录下windeployqt 工程名.exe执行成功后来到空的文件夹下执行后最终效果如下

相关新闻

最新新闻

数据中心成美国政商环领域焦点,《连线》9月10日直播解答相关疑问

数据中心成美国政商环领域焦点,《连线》9月10日直播解答相关疑问

数据中心从无人问津到热议焦点就在几年前,大多数美国人听到“数据中心”这个词可能都不会有特别反应。但现在,只要一提这些嘈杂的大型仓库,就会引发激烈的讨论。作为支撑人工智能行业的基础设施,数据中心成为了政治、商业和环境领…

2026/8/29 1:10:59
架构师的复盘艺术:从经验中提炼智慧

架构师的复盘艺术:从经验中提炼智慧

969 - 架构师的复盘艺术:从经验中提炼智慧煎饼摊每天收摊后的10分钟复盘——今天哪些口味卖得好、哪个步骤慢了、客人抱怨了什么。这10分钟比多做100个煎饼更有价值。架构师的复盘也是这个道理。一、为什么复盘如此重要? 经验≠经历。 经历是发生了什么&…

2026/8/29 1:10:59
全真模拟题十六:冲刺收官

全真模拟题十六:冲刺收官

968 - 全真模拟题十六:冲刺收官越到最后越要稳——不学新知识,只练已掌握的。这套题帮你保持手感。一、快速选择题(10题) 进程状态转换:就绪→运行需要→获得CPU软件危机主要表现→成本超、进度拖、质量差数据流图(DFD…

2026/8/29 1:10:59
日志架构设计:让每个操作都有迹可循

日志架构设计:让每个操作都有迹可循

967 - 日志架构设计:让每个操作都有迹可循 煎饼摊出了食品安全问题,老板一查记录——哪天进的原材料、哪批做的煎饼、卖给了谁,一清二楚。日志就是系统的"操作记录本"。 一、日志架构 应用 → Filebeat → Kafka → Logstash → Elasticsearch → Kibana二、结构…

2026/8/29 1:10:59
负载均衡:让流量均匀分布

负载均衡:让流量均匀分布

966 - 负载均衡:让流量均匀分布 50个顾客挤在一个窗口排队,旁边4个窗口空着——这不合理。负载均衡就是让顾客均匀排到5个窗口,每个窗口都不闲着也不爆满。 一、负载均衡层级 层级 技术 特点 DNS GSLB 就近接入 L4 LVS/Nginx 基于IP+端口 L7 Nginx/HAProxy 基于URL/Header 客…

2026/8/29 1:10:59
单片机计算机毕设之基于 STM32WiFi 传输的停车场状态监控 APP 设计与实现 基于 STM32 的剩余车位检测停车场出入管控系统设计(016505)

单片机计算机毕设之基于 STM32WiFi 传输的停车场状态监控 APP 设计与实现 基于 STM32 的剩余车位检测停车场出入管控系统设计(016505)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/29 1:05:58