QT串口助手开发3串口开发

系列文章目录

QT串口助手开发3串口开发


QT串口助手开发3

  • 系列文章目录
  • 一、UI界面程序的编写
  • 二、发送框程序编写


一、UI界面程序的编写

根据上文的未解决问题:我们打开串口按钮打开后只能选择关闭串口,所以这个是循环的过程
上文链接
所以按钮对应的槽函数首先必须判断当前串口助手是否打开了助手,closed以后要把按钮的状态恢复成打开,修改mIsOpen标志位为False

在这里插入图片描述

否则执行我们写的getSerialPortConfig获取位(数据位…)成功,按钮状态是打开,并且按钮要更新为关闭(并且位的下拉框要变成灰白色不再可以调位下拉框了),如果没有获取成功则按钮状态是关闭的
在这里插入图片描述

禁止使用下拉框就成灰白色了

在这里插入图片描述

代码如下:

在这里插入图片描述

测试下信息,加个QDebug头信息

在这里插入图片描述在这里插入图片描述

ctrl + r运行测试效果

在这里插入图片描述在这里插入图片描述

我们需要打开按钮打开后才能点击发送按钮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其实还可以直接把mIsopen填进去这样就不用思考填true或者false

在这里插入图片描述在这里插入图片描述在这里插入图片描述
ctrl + r 运行测试效果
当你没有打开串口的时候发送按钮是灰色的(不能发送),当你打开串口的时候,发送按钮是可以发送的
在这里插入图片描述在这里插入图片描述

二、发送框程序编写

发送按钮转到槽函数,详情槽函数可以参考文章槽函数

在这里插入图片描述
在这里插入图片描述比如TeditSend函数不会用,就再帮助文档查TeditSend函数,帮助文档使用方法参考文档添加链接描述

由于这个toPlainText()这个函数是Qstring类型,所以我们需要变更下它的函数类型为char*,再帮助文档中查看Qstring函数的用法
在这里插入图片描述Qstring先转换成标准的c++string,然后再用c_str转换成char*
ctrl + r 运行测试下效果
在这里插入图片描述
同理写接受框,COM2给COM1发送数据时,这时接收框没有反应
在这里插入图片描述
接收框程序写法:
平常都是再ui转到槽函数,这个是从设计界面,如果我们连接到串口,需要用代码的方式连接
connect是连接信号和槽,信号发送者是mSerialPort,发送信号Readyread,发送给槽(先自定义下)的槽
slots槽函数
在这里插入图片描述
ALT + ENTER选择添加定义
在这里插入图片描述
在这里插入图片描述

再写槽函数里面读取串口
当串口有数据的时候,就会发送ReadyRead这个信号,槽函数就会响应,就会读取串口,然后设置到接收文本框里面

在这里插入图片描述ctrl + b编译ctrl + r测试下效果
在这里插入图片描述一直发送都是一个hhh
因为我们之前设置的槽函数,一旦有数据就会读取并且发送到接收框,这样每次发送都是会覆盖掉前面发送的,我们不想要覆盖,所以再点开帮助文档,查看texyedit函数或者直接搜索关键字append,查看到append的槽函数,槽函数依旧是函数可以直接调用
所以把setPlaintext函数变更成append函数即可
在这里插入图片描述ctrl + r 运行测试效果
在这里插入图片描述清除功能,查看帮助文档,搜索clear,可以自行添加


END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/1113.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】搜索二叉树(保姆教程)

🍅二叉树底层是堆,之前学习的简单二叉树不是大堆就是小堆,今天是二叉树进阶,一定要好好掌握! 目录 ☃️1.搜索二叉树介绍 ☃️2.底层实现 ☃️3.key模型和key,value模型 ☃️1.搜索二叉树介绍 右>根&…

蜻蜓优化算法Python代码(详细注释)

1.代入例子,目标函数求最优解迭代过程:蜻蜓算法流程:蜻蜓算法(Dragonfly Algorithm)是一种基于种群的优化算法,灵感来自于蜻蜓的群集行为。该算法通过模拟蜻蜓之间的吸引力和斥力,以及蜻蜓的移动…

IDEA好用插件:MybatisX快速生成接口实体类mapper.xml映射文件

目录 1、在Idea中找到下载插件,Install,重启Idea 2、一个测试java文件,里面有com包 3、在Idea中添加数据库 --------以Oracle数据库为例 4、快速生成entity-service-mapper方法 5、查看生成的代码 6、自动生成(增删查改&#xff0…

C++ | 对比inline内联函数和宏的不同点

文章目录一、前言二、宏的优缺点分析1、概念回顾2、宏的缺点3、宏的优点三、inline内联函数1、概念2、特性①:空间换时间🎁趣味杂谈:庞大的游戏更新包3、特性②:inline实现机制4、特性③:inline的声明与定义反汇编观察…

【链表OJ题(八)】相交链表

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(八)8. 相交…

【C++笔试强训】第三十二天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

Spring Bean实例化和初始化的过程

承接上文Spring Bean生命周期应用程序在运行过程中能否去读取当前系统的环境变量或系统属性?这里涉及到一个非常重要的接口Environment,System.getenv,System.getProperties都是获取当前系统环境变量,Environment接口的实现类AbstractEnviro…

浏览器前进与后退的秘密——栈 (栈的理解与实现)

文章目录前言:浏览器与栈的纠缠如何理解“栈”?如何实现一个“栈”?基于数组的顺序栈基于链表的链式栈解答开篇🐱‍🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和…

每日算法题

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 作为篮球队教练,你需要从以下名单中选出 11 号位至 55 号位各一名球员,组成球队的首发阵容。 每位球员担任 11 号位至 55 号位时的评分如下…

CCF-CSP真题《202212-3 JPEG 解码》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号:202212-3试题名称:JPEG 解码时间限制:1.0s内存限制:512.0MB问题描述: 问题背景 四年一度的世界杯即将画上尾声。在本…

STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2)

STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2) 目录STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2)前言1 环境搭建2 功能描述3 程序编写3.1 BootLoader部分3.2 APP的制作4 修改工程中的内存配置4.1 Bootloader…

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

前一阵子有个徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬印象最深的就是下面几个问题:根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解?非关系型数据库…

HashMap扩容为什么每次都是之前的2倍

一. 背景介绍HashMap的底层是通过数组链表红黑树的数据结构来存放数据的。我们知道,当新添加元素的key值出现了hash碰撞,就会在同一个bucket中形成链表或者红黑树。当键值对的数量超过阈值时就会扩容,将以前处于同一个链表或者红黑树上的元素…

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试

本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…

C语言刷题(6)(猜名次)——“C”

各位CSDN的uu们你们好呀,今天,小雅兰还是在复习噢,今天来给大家介绍一个有意思的题目 题目名称: 猜名次 题目内容: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选…

测试管理之路 —— 如何优化测试计划以提高测试覆盖率

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能&#xf…

Github的使用

Github Date: March 8, 2023 Sum: Github的使用 Github 了解开源相关的概念 1. 什么是开源 2. 什么是开源许可协议 开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议( Open Sou…

node多版本控制

前言 最近在折腾Python,并将node升级至v18.14.2。突然发现一个旧项目无法运行,也无法打包,里面的node-sass报错,显然这是因为node版本过高导致的。 将node版本降低至以前的v14.16.0,果然立马就能正常运行。 存在不同…

mysql-日志备份

1.binlog 用于数据恢复, 用于数据复制。 mysql> show variables like %log_bin%; -------------------------------------------------------------- | Variable_name | Value | ----------------------------------…

前端代码复用学习笔记:整洁架构与清晰架构

基础代码的复用往往比较简单,但是业务代码的复用通常是困难的,如果没有特殊的手段去治理项目会逐渐发展为难以维护的巨石应用,按照维基百科记载,代码的复用形式主要有三种,程序库,应用框架,设计…
最新文章