QT中事件机制的使用

betball贝博app 未分类 533 次浏览 没有评论

今天写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

发表评论

邮箱地址不会被公开。

Go