定时器文本框·

Qt5串口调试助手(5)--周期发送数据

Hugh

Hugh

1614 0

1.周期发送数据功能

周期发送功能:选中周期发送开关,软件以下图 2 所示的周期,将数据周期循环发送。

2. 功能实现

step1:需创建一个定时器来实现,mainwindow.h 函数中定义定时器对象

//周期发送定时器,和多行的循环发送共用
QTimer *PriecSendTimer;

step2:在 mainwindow.cpp 的构造函数中创建定时器,并关联超时函数

//创建周期发送、时间显示、延时接收定时器,并初始化
PriecSendTimer = new QTimer;
PriecSendTimer->setInterval(1000);//默认周期1000ms
//定时器槽关联,关联至发送按钮槽函数,即定时到来时,自动发送数据
connect(PriecSendTimer,&QTimer::timeout,this,[=](){on_pushButtonSend_clicked();});

如上代码所示,将定时器超时函数关联到了“发送”按钮槽函数,相当于定时到达时,按了一下“发送”按钮,而按发送按钮会完成串口数据的发送。因此,我们只需要在选中“周期发送”的时候,重新设置发送周期和启动定时器即可。

step3:选中“周期发送”槽函数,选中 stateChanged(int)

step4:“周期发送”槽函数代码编辑

/***********************************************************
 *周期发送
 * 1.未选中状态下,关闭周期发送定时器,使能周期输入文本框
 * 2.选中状态,获取周期,并启动周期发送定时器,失能周期输入文本框
 ***********************************************************/
void MainWindow::on_checkBoxPeriodicSend_stateChanged(int arg1)
{
    if(arg1 == false)//未选中
    {
        PriecSendTimer->stop();//关闭定时器
        ui->lineEditTime->setEnabled(true);//使能周期输入文本框
    }
    else //选中,开始周期发送
    {
        PriecSendTimer->start(ui->lineEditTime->text().toInt());//启动周期发送定时器
        ui->lineEditTime->setEnabled(false);//失能周期输入文本框
    }
}

3.小结

完成周期发送功能!

所属系列

从当前文章继续阅读它所在合集中的前后内容。

QT5串口调试助手RYCOM 第 6 / 14 篇
查看合集

手把手教你设计基于Qt5的串口调试助手,只需创建一个项目,一套代码,可实现跨越windows、linux、MacOS三大操作系统桌面应用软件。

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人