首页| 论坛| 消息

回复: qmqtt收不到信号?
#6 [angelus 05-24 09:42]
如果你只是想把收到的信息,放在一个容器队列里,然后用其他方式去处理,没必要开启子循环,就在接收到数据后把数据 压到容器队列中,就行了,不要阻塞主线程,至于你想怎么处理容器消息,何时去处理,可以自己决定,到底是用定时器去间隔逐条处理,还是用户在gui主界面手动点击处理,还是开启子线程去自动化逐条处理,都是很好实现的
#7 回 angelus 的帖子 [foxgod 05-24 10:51]
angelus:如果你只是想把收到的信息,放在一个容器队列里,然后用其他方式去处理,没必要开启子循环,就在接收到数据后把数据 压到容器队列中,就行了,不要阻塞主线程,至于你想怎么处理容器消息,何时去处理,可以自己决定,到底是用定时器去间隔逐条处理,还是用户在gui主界面手动点击处 .. (2019-05-24 09:42) 
我想问的是,为什么在gui线程里面调用了QCoreApplication::processEvents()函数,这个函数不是去执行其他的信号和槽函数吗,为什么会阻止了我的socket的信号呢
#8 回 20091001753 的帖子 [foxgod 05-24 10:52]
20091001753:就是用信号槽啊,自己定义信号与槽函数,你已经这么做了:
connect(m_mqClient,SIGNAL(ReciverMessage(QByteArray)),this,SLOT(ReciverMsg(QByteArray))) (2019-05-24 09:34) 
QCoreApplication::processEvents()这个函数不是去执行其他的信号和槽函数吗,为什么会阻止了我的socket的信号呢
#9 回 angelus 的帖子 [foxgod 05-24 11:12]
angelus:如果你只是想把收到的信息,放在一个容器队列里,然后用其他方式去处理,没必要开启子循环,就在接收到数据后把数据 压到容器队列中,就行了,不要阻塞主线程,至于你想怎么处理容器消息,何时去处理,可以自己决定,到底是用定时器去间隔逐条处理,还是用户在gui主界面手动点击处 .. (2019-05-24 09:42) 
如果是非gui界面,可以用while(1)这样的用法吗??
#10 [20091001753 05-24 11:44]
使用 Qt 编程千万不要用 while(1) 这样的句子
你目前对 Qt 的事件机制有些误解,建议你先停下来
去淘宝买 Qt5 的入门书籍,跟着书练习一些 Demo

<< 1 2 3 >> (2/3)

回复 发表
主题 版块