今天写modbustcp的server和client,数据处理完没有写成类,所以没有想到合适的方法来继续用信号/槽机制。
看到网上说QT中通过信号机制也可以实现跨线程的通信,于是进行试验。
对需要接收信号的线程,要重写event函数
//源文件中:
bool ClientThread::event(QEvent* e) {
qDebug() << "event!!";
qDebug() << e->type();
if (e->type() == 1)
this->Device->Read();
return QObject::event(e);
}
//头文件中:
bool event(QEvent* event)override;
//触发信号的位置:
const QEvent::Type read = (QEvent::Type)5001;
QCoreApplication::postEvent(OP40Client, new QEvent(read));
这样自己写的一些函数没有继承于QObject类,就可以通过事件实现
网上很多说的customevent,是老版本的。我用的5.13