Advertisement

Qt多线程通信测试与训练(Python)

阅读量:

先前在项目开发中采用Qt多线程机制,跨线程通信功能运行正常,未曾遇到异常情况。然而在当前的开发任务中,却意外发现两个线程间的信号与槽机制无法实现有效通信!!!经过一番深入探究与问题排查,现将相关经验整理记录如下。

在进行信号与槽连接操作时,已对连接过程中的各项细节进行了仔细核查,确认无误。以下为具体代码示例:

复制代码
    connect(_pGetMsgThread, &GetMsgThread::signalToShowPopWidget, this, &MainWindow::showPopWidget);
    

在程序执行过程中出现了错误提示:

QObject::connect: 无法对类型 'QList' 的参数进行队列处理

(请确认 'QList' 是否已通过 qRegisterMetaType() 进行注册。)

事实上,该信号槽机制确实需要传递参数,且参数的类型为 QList,其中包含的是本人自行定义的 MSGINFOSTRCUT 结构体内容,需特别说明的是,该结构体为用户自定义类型。

复制代码
 signals:

    
     void signalToShowPopWidget(QList<MSGINFOSTRCUT> msgList);
    
    
    

全部评论 (0)

还没有任何评论哟~