如图,请问在Qt中run()函数该怎么写?

有两个控制端,一个为主控制端,另一个为辅控制端,当主控端检测到某信息后将某信息传给辅控端,这样辅控端也能看到信息,想问下辅控端应该怎么接收主控端发来的信息并作出响应?
下面是一个监听的头文件:

**.cpp里面一段
mNetSend = new NetSend(mSendPort, mHostAdd);
mNetSend->start();
mNetListen = new NetListen(mListenPort);
mNetListen->start();
connect(mNetListen, SIGNAL(recieved(QByteArray*)), this, SLOT(handleMsg(QByteArray*)));

想问下run()函数应该怎么写?写什么内容?现在主控端打开后有信息来时辅控端没反应是怎么回事?
本人刚开始接触什么都不懂,请高手赐教。
这是netListen的头文件


潇潇雨雨
浏览 316回答 1
1回答

慕码人8056858

看你的样子,NetListen应该是继承QThread吧,如果是继承QThread那么你这么写是错误的。应该这样:NetListen继承自QObject,1.另起一个类Thread继承自QThread,在你的Thread的run里面:void Thread::run(){netlisten = new NetListen();connect(........................);exec();}2.或者不需要写Thread,直接创建一个QThread对象tread,然后NetListen->moveToThread(thread);**.cpp里面一段 QThread *threadA = new QThread; mNetSend = new NetSend(mSendPort, mHostAdd); threadA->start(); mNetSend->moveToThread(threadA); QThread* threadB = new QThread; mNetListen = new NetListen(mListenPort); threadB->start();  mNetListen->moveToThread(threadB); connect(mNetListen, SIGNAL(recieved(QByteArray*)), this, SLOT(handleMsg(QByteArray*)));   mNetListen继承自QObject; **.cpp既不是mNetSend,也不是mNetListen,而是一个主线程,那两个是两个不同的子线程。你的这个信号槽连接是将mNetListen数据告诉了 主线程,主线程也需要一个信号槽来告诉另一个子线程;或者两个子线程之间建立一个信号槽
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JavaScript