从零开始实现自己的串口调试助手(8)-循环发送

news2025/1/21 6:02:10

循环发送

准备

创建槽函数

设置QSpinBox的最大值

注意:


          // 我们不能在qt的ui线程中延时,否则将导致页面刷新问题
         //QThread::msleep(ui->spinBox->text().toInt());//设置下次发送时间间隔
 

定时器实现


关联信号与槽:

    //添加自动换行定时器
    btnConTimer =  new QTimer(this);
    connect(btnConTimer,&QTimer::timeout,this,&Widget::btnHandler);


 创建控件处理函数

void Widget::btnHandler()
{
    if(btnIndex<buttons.size()) { // 遍历我们创建的多文本控件数组
        QPushButton *btnTmp = buttons[btnIndex];// 读到每一个发送按钮
        emit btnTmp->clicked(); //发出被点击信号 -->跳到对应处理函数-->发送
        btnIndex++;
    }
    else {
        btnIndex  = 0; // 复位
    }

}

实现定时器控制槽函数

void Widget::on_checkBox_send_clicked(bool checked)
{
    if(checked){ // 循环发送被勾选
        ui->spinBox->setEnabled(false);
        btnConTimer->start(ui->spinBox->text().toInt()); // 根据框内的值设置定时器周期
    }
    else{
        ui->spinBox->setEnabled(true);
        btnConTimer->stop();
    }
}

线程实现:

自定义线程类

customthread.h
#ifndef CUSTOMTHREAD_H
#define CUSTOMTHREAD_H

#include <QThread>
#include <QWidget>
#include "widget.h"

class customThread : public QThread
{
    Q_OBJECT // 需要用这个宏里面的信号与槽
public:
    customThread(QWidget *parent);

protected:
   void run() override;

signals:
 void  threadTimeout();


};

#endif // CUSTOMTHREAD_H
customthread.cpp
#include "customthread.h"



customThread::customThread(QWidget *parent):QThread(parent)
{

}

void customThread::run()
{
    while (true) {
    msleep(1000);
    emit threadTimeout();//每隔一秒发一次超时信号
    }

}

线程的信号处理

   // 自动换行线程初始化
    myThread = new customThread(this);
    connect(myThread,&customThread::threadTimeout,this,&Widget::btnHandler);

修改槽函数

void Widget::on_checkBox_send_clicked(bool checked)
{
    if(checked){ // 循环发送被勾选
        ui->spinBox->setEnabled(false);
        myThread->start(); //线程开始
        //btnConTimer->start(ui->spinBox->text().toInt()); // 根据框内的值设置定时器周期
    }
    else{
        ui->spinBox->setEnabled(true);
        myThread->terminate();
        //btnConTimer->stop();
    }
}

实现效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】什么是props

文章目录 一、介绍二、代码示例三、props校验四、props校验完整写法五、props&data、单向数据流 一、介绍 Props 定义 组件上 注册的一些 自定义属性 Props 作用 向子组件传递数据 特点 可以 传递 任意数量 的prop可以 传递 任意类型 的prop 二、代码示例 父组件App…

实习记录2

1.flowable框架参数传递大概流程 通过传递xml&#xff0c;传递到后端&#xff0c;然后后端去解析 2.vue封装组件 在 Vue.js 中创建可复用的自定义组件是一个常见的需求&#xff0c;这样可以提高代码的复用性和可维护性。下面是一个简单的步骤指南&#xff0c;帮助你创建一个…

无锡哲讯——机械行业ERP管理系统,引领智能制造新纪元

机械行业作为现代工业的基石&#xff0c;正面临着前所未有的变革。随着智能制造的兴起&#xff0c;ERP管理系统在机械行业中的作用日益凸显。无锡哲讯智能科技有限公司&#xff0c;凭借其在ERP领域的专业实力和丰富经验&#xff0c;为机械行业客户提供定制化的ERP解决方案&…

Transformer学习之SwinTransformer

1.算法简介 本文主要参考自以下链接&#xff0c;整理成线上的形式用于备忘&#xff0c;排版太麻烦了直接贴图&#xff0c;参考的朋友慎重&#xff0c;不如直接看参考链接&#xff0c;后期有了新的理解继续更正。 参考链接1&#xff1a;Swin-Transformer网络结构详解_swin tran…

【计算机网络】对应用层协议中HTTPS协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

上市公司绿色并购数据+do文件(1996-2024.4)

数据简介&#xff1a;手工搜集重污染上市公司的并购公告&#xff0c;采用内容分析法&#xff0c;对每次并购的背景和目的&#xff0c;主并企业和标的企业经营范围以及该次并购对主并企业带来的影响进行综合分析&#xff0c;逐一判断该项并购事件是否为绿色并购 时间跨度&#…

欢乐钓鱼大师辅助:哪家云手机自动钓鱼更好操作!

在探索《欢乐钓鱼大师》的世界时&#xff0c;我们不得不提到一个强大的游戏辅助工具——VMOS云手机。通过VMOS云手机&#xff0c;你可以轻松实现自动钓鱼&#xff0c;让游戏体验更加便捷高效。 什么是VMOS云手机&#xff1f; VMOS云手机是一款基于虚拟机技术的云端工具&#…

融云:应用出海新增长引擎,GPT-4o 后的 AI 创新与用户运营

近日&#xff0c;融云与 TikTok、维卓联合在京举办了“十年出海&#xff0c;遇上 AI”私享会。 会上&#xff0c;融云解决方案架构师于洪达带来了《应用出海新增长引擎&#xff0c;AI 创新与用户精细化运营》主题分享&#xff0c;探讨在 AI 技术大潮下应用出海通过创新运营方式…

金融科技:跨境支付的新引擎,开启全球化支付新时代

一、引言 在全球经济一体化的今天,跨境支付作为连接各国经贸往来的重要桥梁,其便捷性、安全性和效率性成为了各国企业和消费者关注的焦点。金融科技,作为现代金融与传统科技深度融合的产物,正以其独特的创新力和推动力,成为跨境支付领域的新引擎,引领着全球化支付新时代…

PDF编辑与修正 提高工作效率 Enfocus PitStop Pro 2022 中文

Enfocus PitStop Pro 2022是一款专为Mac用户设计的强大PDF编辑和校对工具。它支持添加、删除、合并、分割PDF页面&#xff0c;以及文本和图像的编辑&#xff0c;如文字替换、字体更改、颜色调整等。内置自动修复功能&#xff0c;能快速检测并修复缺失字体、重叠文本等常见问题。…

kettle列转行(行扁平化)的使用

kettle行扁平化节点是将多行数据合并为一行数据如&#xff0c;其行为类似于css中的float排列 将上表格数据转换为下表格数据 namecategorynumjack语文10jack数学20jack英语40rose英语50 name语文数学英语jack102040rose50 使用行扁平化节点配置需要扁平化的字段&#xff0c…

halcon算子之prepare_object_model_3d详解

为某一操作准备三维对象模型。 Description 操作符prepare_object_model_3d准备3D对象模型ObjectModel3D,用于下面目的中给出的操作。它计算操作所需的值并将其存储在ObjectModel3D中,从而加快了后续操作。没有必要调用prepare_object_model_3d。但是,如果要多次使用3D对象…

微信小程序毕业设计-家庭事务管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

防汛应急排涝泵车的特点,有哪些用途

一、产品概述 移动柴油水泵机组又称移动拖车泵&#xff0c;它采用柴油作为燃料&#xff0c;通过内燃机的工作原理将化学能转化为机械能&#xff0c;进而驱动水泵进行抽水或输送任务。这种机组广泛应用于消防、市政应急给水、农业灌溉、防洪抢险等多个领域&#xff0c;其灵活性…

spark复习

第一章 1.​大数据特点:4V 2.​大数据计算模式 3.​hadoop生态系统 4.​spark提供了内存计算和基于DAG的任务调度机制&#xff0c;遵循一个软件栈满足不同应用场景的理念。 5.​hadoop中MapReduce计算框架的缺点&#xff0c;对应的spark的优点 第二章 1.​spark生态系统 …

2024年5月文章一览

2024年5月编程人总共更新了7篇文章&#xff1a; 1.2024年4月文章一览 2.《自动机理论、语言和计算导论》阅读笔记&#xff1a;p215-p351 3.《自动机理论、语言和计算导论》阅读笔记&#xff1a;p352-P401 4.《自动机理论、语言和计算导论》阅读笔记&#xff1a;p402-p427 …

基于SSM+Jsp的高校信息资源共享平台

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

[手游] 口袋妖怪肉鸽宝可梦肉鸽

Pokerogue是一款roguelike游戏&#xff0c;包括1-9代精灵和宝可梦战斗系统&#xff0c;不是角色扮演游戏。游戏自带自动存档&#xff0c;无法手动保存。游戏中有无尽层数冲塔模式&#xff0c;同时提供mega、钛晶化、极巨化、无限融合等基因之契四系统&#xff0c;以及手环等道具…

技术架构的发展

技术架构的演进 主要方向&#xff1a; ​ 1.提高单位时间内的吞吐量&#xff0c;提高并发度&#xff1b; ​ 2.对应用服务代码进行解耦合&#xff0c;使得开发效率得到提高&#xff1b; ​ 3.运维成本降低&#xff1b; ​ 4.成本降低&#xff0c;如购买云厂商资源&#xf…

计算机SCI期刊,IF=9.657,1区TOP,2周内出版

一、期刊名称 Neural Networks 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;7.8 中科院分区&#xff1a;1区TOP 三、期刊征稿范围 神经网络提供了一个论坛&#xff0c;用于发展和培养对神经网络的各个方面感兴趣的学者…