当前位置: 首页 > news >正文

#QT(串口助手-界面)

1.IDE:QTCreator


2.实验:编写串口助手


3.记录

接收框:Plain Text Edit

属性选择:Combo Box

发送框:Line Edit

广告:Group Box

(1)仿照现有串口助手设计UI界面

a5ab1fa7883844b596fc81641274500d.pngd65e021914314e35863b0f60dab50b69.pngd301f093c3db4f5cac9cd448e7130ab7.png

ef0d8c029b9e43d78dd4e79270df3656.png7dbcac1f97f74818a651c4a59b8e4dee.png (2)此时串口助手大体UI完成,但是接收框也能输入数据,应该禁止接收框输入数据,将接收框改为只读属性

ae892a5367724fa58452422c010f8a9c.png

(3)在可选择的属性框中设置待选择的属性

f96ffe8bd9034b6ab18a2dfba302dbb8.png

(4)加入选项后,发现布局有问题

62dad1497ce943a6875231447895566d.png776b39911ed84377a84ee6185fc31580.png (5)新的运行效果

858db0e08594440da3cec6d7218bf57d.png

(6)修改可选择属性的默认选择 

7a282230716c49e496eeff4cbd9dce79.png

(7)在pro文件中加入serialport,如果报错为缺少module,那么可以在qt安装文件中,找到 

dde00fb173264e8d9bcb71547dc704c4.png

根据提示add or remove compent ,加入serial port即可,加入serial bus可以以后编写can modbus等上位机软件

3877fff2898c4cb39d7b5418971e2921.png

(8)加入搜索串口代码 


4.代码

#include "widget.h"
#include "ui_widget.h"
#include "QSerialPortInfo"   //引入必要的serial文件
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QStringList serialNamePort;       //定义一个数组foreach (const QSerialPortInfo &info ,QSerialPortInfo::availablePorts()) {      //自动搜索当前串口serialNamePort<<info.portName();      //将返回值加载入数组}ui->com_cb->addItems(serialNamePort);     //将搜索的串口加入UI界面
}Widget::~Widget()
{delete ui;
}

 

 

相关文章:

  • 多线程环境中使用UdpClient,适当的同步机制
  • php-webdriver 通过队列的方式实现工作流
  • 刷题第11天
  • 985硕的4家大厂实习与校招经历专题分享(part2)
  • 测试常用的Linux命令
  • 中医把脉笔记
  • react tab选项卡吸顶实现
  • 力资源视角的数字化应用
  • 01背包问题 刷题笔记
  • 排序算法:插入排序和希尔排序
  • 阿里云服务器怎么使用?3分钟搭建网站教程2024新版
  • 【设计模式】工厂模式与抽象工厂模式
  • SEO关键词策略:如何选取最适合你网站的关键词?
  • 一个简单的回调函数
  • IOS开发0基础入门UIkit-1cocoapod安装、更新和使用 , 安装中出现的错误及解决方案 M1或者M2安装cocoapods
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • avalon2.2的VM生成过程
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • FastReport在线报表设计器工作原理
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Redux 中间件分析
  • springMvc学习笔记(2)
  • 初识 beanstalkd
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 和 || 运算
  • 技术发展面试
  • 警报:线上事故之CountDownLatch的威力
  • 模型微调
  • 前端面试之闭包
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 王永庆:技术创新改变教育未来
  • 微信小程序实战练习(仿五洲到家微信版)
  • 系统认识JavaScript正则表达式
  • HanLP分词命名实体提取详解
  • # 达梦数据库知识点
  • #define,static,const,三种常量的区别
  • #pragam once 和 #ifndef 预编译头
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (第30天)二叉树阶段总结
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core Redis 使用有序集合实现延迟队列
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 发展历程
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args