在QT中使用qextserialport类,为何在串口接收函数中使用QMessageBox,会重复几次弹出相同的对话框?????? 10

很奇怪的现象啊!!!!!!!!!有些又只弹出一次,不知道哪里出错了~~~~如下代码中“0xAA”那个标签同时弹出两个一样的对话框,要关闭左边那个才可以关闭右边那个如下代码... 很奇怪的现象啊!!!!!!!!!有些又只弹出一次,不知道哪里出错了~~~~

如下代码中“0xAA”那个标签同时弹出两个一样的对话框,要关闭左边那个才可以关闭右边那个
如下代码中的“2”那个标签中的也是

有时候又弹出好几次的相同的,求解!!

代码如下:
void MainWindow::readMyCom(){ QByteArray temp; temp = myCom->readAll(); for (int i = 0; i < temp.size(); i++) { revbuffer[index++] = temp.at(i); } if (START == revbuffer[0] && index == revbuffer[1]) { switch (revbuffer[2]) { case 1: { break; } case 2: { if (MI_OK != revbuffer[STATUS]) { /* 清空发送缓冲区 */ memset(sendbuffer, 0, BUFFER_LEN); QMessageBox::critical(this, tr("错误提示"), tr("请将IC卡放在读\r\n卡器通信范围内")); } else { QMessageBox::about(this, tr("操作成功"), tr("寻卡成功")); } break; }
case 0xAA: {
QMessageBox::warning(this, tr("握手成功"), tr("与读卡器设\r\n备握手成功")); break; }
default : { break; } } /* 数据处理完毕,接收指针,接收缓冲区清零 */ index = 0; memset(revbuffer, 0, BUFFER_LEN); }/* if (START == revbuffer[0] && index == revbuffer[1]) */}
也就是出现一个现象,QMessageBox引发一个串口接收信号,导致接收信号再一次发射,那么QMessageBox与串口联系上了??这是什么关系呢??我用qdebug调试输出信息,的确是引发发射接收信号了
展开
 我来答
查晓筠0i5
2015-01-18 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4982万
展开全部
关注这个问题
追问
伙计 ,你也遇到这个问题??有没有解决?
追答
我也想知道才关注。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式