QT专题之串口编程 -上位机设计

发布时间:2026/10/25 1:07:36
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执行成功后来到空的文件夹下执行后最终效果如下

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询