首页 > 编程语言 >Qt 信号与槽 传输自定义结构体跨线程访问程序异常退出问题

Qt 信号与槽 传输自定义结构体跨线程访问程序异常退出问题

时间:2022-12-20 17:37:07浏览次数:51  
标签:Info ... Qt 自定义 访问 Mqtt 体跨 线程


Qt 信号与槽 传输自定义结构体跨线程访问程序异常退出问题

在使用自定义结构体的时候发现在同一个线程里面的信号发送和槽函数访问使用是正常的
当跨线程信号与槽连接访问自定义结构体时发生访问异常程序异常退出
通过尝试找到问题,解决办法如下:

自定义的结构体或类最好通过Q_DECLARE_METATYPE宏用来注册一个类(含默认构造、默认析构、拷贝构造函数)为QMetaType类型

修改前

struct Mqtt_Info{
QString id;
...

bool operator==(const Mqtt_Info&info){
return ...;
}
};

修改后

struct Mqtt_Info{
QString id;
...

bool operator==(const Mqtt_Info&info){
return ...;
}
};

Q_DECLARE_METATYPE(Mqtt_Info);

通过如上修改后,我自己的工程已正常解决了访问异常退出问题。


标签:Info,...,Qt,自定义,访问,Mqtt,体跨,线程
From: https://blog.51cto.com/u_15918664/5956346

相关文章

  • PySide6、PyQt6、ui文件转py文件、Qt Designer 使用
    QT官网:​​https://www.qt.io/zh-cn/develop​​1、PySide6、PyQt6、PyQt5PySide6、PySide2、PyQt5都是基于Qt库,Qt是一组C++库和开发工具,包括图形用户界面、网络、线......
  • Python PyQt5 教程
     PyQt5教程 :http://code.py40.com/face 教程翻译自:​​http://zetcode.com/gui/pyqt5/​​ 【第一节】PyQt5简介:​​http://code.py40.com/1948.html​​​【第二节】P......
  • Elementui form自定义正则
    ##Elementuiform自定义正则```javascriptbusinessCertNo:[{required:true,message:'请输入xxxxxxx',trigger:'blur'},{validator:reg_businessCertN......
  • AWS AppSync 添加 自定义 坐标查询 V2
    res.vtl#set($items=[])#foreach($entryin$context.result.hits.hits)#if(!$foreach.hasNext)#set($nextToken=$util.base64Encode($util.toJso......
  • django组件:批量操作、分页器思路及自定义分页器
    目录django内置序列化组件(drf前身)批量操作数据分页器自定义分页器的使用form组件django内置序列化组件(drf前身)urls.py:#序列化组件path('ab_ser/',views.ab_ser),vi......
  • Qt QTreeView简单使用
    QT-QTreeView使用方法QTreeView:用于显示树状结构数据,适用于树状结构数据的操作。一、初始化​ 利用QStandardlternModel来初始化数据,标准的基于项数据的数据模型类,每......
  • qtablewidget 高亮显示某行
    //设定选择行为,按行选择tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选中行的背景色,必须要显示设置,即代码设置或者在ui文件的控件中设置,......
  • 解决python无法导入自定义类的问题
    问题:在自定义了类之后,想在另外一个文件导入自定义类,无法导入目录:在class_test.py中自定了类在test.py中导入类A,出现问题解决方法:test.py:importsysimportos......
  • Python3 Robot Framework CustomLibrary 封装系统关键字(使用自定义函数)
    1.创建一个python文件,确认能够执行,放入任意一个目录(如C:\CustomLibrary\helloworld.py)。#-*-coding:utf-8-*-defhi(name):u'''接收一个名字,并问候.例如|......
  • 腾讯QTA自动化测试框架(Android/ios/Web/后台/云服务)
    QTA是一个跨平台的测试自动化工具,适用于后台、原生或混合型客户端应用的测试。更详细的介绍见下方链接:testerhome上的介绍链接:https://testerhome.com/articles/17946  开......