首页| 论坛| 消息
主题:qmqtt收不到信号?
foxgod发表于 2019-05-24 08:43
使用qmqtt的过程里面本来一切都正常,原来代码是
connect(m_mqClient,SIGNAL(ReciverMessage(QByteArray)),this,SLOT(ReciverMsg(QByteArray)));
此信号为qmqtt收到一个消息就的信号
主界面
通过ReciverMsg(QByteArray)这个槽函数收到消息。然后处理。
但是因为在gui界面想一个个处理消息,不想收到消息就处理,也就是不想多线程处理,所以在ReciverMsg(QByteArray)槽函数里面把收到的消息保存起来,放一个队列里面,在gui界面里面有个死循环
while(true)
{
QByteArrayrebackdata;
if(!m_bIsBusy)
{
if(ww->ReadControlMessage(rebackdata))//保存在队列里面的一个函数,从这个函数里面一个个读取消息
{
m_bIsBusy = true;
WriteFile(rebackdata);
}
else
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);//处理其他消息、事件。
}
}
else
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);//处理其他消息、事件。
}
这样做后,信号和槽函数都没有办法相应了,这是怎么回事呢?把这个死循环去掉,是可以相应的?有什么解决办法
回帖(13):
13楼:foxgod:咨询个问题,就是我有一个函数,我想用计时器,每隔多长时间去执行这个函数操作,,我想 ..
12楼:angelus:你还没明白嘛,和gui没有太大关系,即使没有gui界面,主循环依然存在,有gui仅仅是因为g ..
11楼:foxgod:如果是非gui界面,可以用while(1)这样的用法吗?? (2019-05-24 11:12)
你还没明白 ..

全部回帖(13)»
最新回帖
收藏本帖
发新帖