Make sure ‘SystemCfg‘ is registered using qRegisterMetaType
最近在编写Qt代码的时候遇到标题上的问题,现象是:在收到一个xml字符串需要解析时,我放在线程里面处理,然后线程执行完成后将xml对应的结构体返回给主线程。在主线程的槽函数中始终接收不到,但是在子线程中emit函数是执行过的,在调试窗口中看到下面这句话:Make sure ‘SystemCfg’ is registered using qRegisterMetaType()。其中SystemCfg是emit要返回的参数。
出现这个问题的原因是:在线程中通过signal-slot传递信息时,参数默认时放到Qt的消息队列中的,但是SystemCfg结构体时自定义的,不是Qt能直接识别的结构。
解决办法:将SystemCfg注册到Qt中,首先在头文件中添加如下代码:
#include <QMetaType>
然后在子线程的构造函数中添加注册代码,如下所示:
qRegisterMetaType<SystemCfg>("SystemCfg");
重新编译运行,完美执行slot函数。
Make sure ‘SystemCfg‘ is registered using qRegisterMetaType相关推荐
- QT解决报错registered using qRegisterMetaType()
在qt日常使用中,信号与槽机制是绝对不可或缺且常用的,其中的参数一般都会比较简单,bool.int.QString之类的,但当我们想要传递相对比较复杂的参数,例如QVector<int>. ...
- Qt线程错误记录registered using qRegisterMetaType()
1.问题 在多线程连接信号槽,发送QVector& 类型时抛出错误: C++类,有些时候要是调用Qt的信号槽当做参数进行跨线程发送,就会出现如下问题: 这种情况一般,编译可以通过,但会出现如下 ...
- 【Qt】Qt再学习(十六):QObject::connect: Cannot queue arguments of type ‘QString‘
1.问题描述 跨线程使用信号和槽时,如果是非const的引用传参,就会报如下的错误: QObject::connect: Cannot queue arguments of type 'QString ...
- QT子线程与主线程的信号槽通信
最近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号 ...
- 如何在Qt中使用自定义数据类型
这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString ...
- Qt知识点、疑难杂症的治疗
Q: QVariant 保存指针数据 A1: 1,使用QVariant::fromValue((void*)target)保存数据 2,使用(ShortcutItem*)(v.value<voi ...
- QObject::connect: Cannot queue arguments of type xxx的解决方案
问题描述 在跨线程的信号和槽的参数传递中, 参数的类型是自定义的类型, 然而此时出现了错误: QObject::connect: Cannot queue arguments of type 'Pos ...
- linux创建自定义组件qt,QT中的元对象系统:创建自定义的QT类型
原创文章,转载请注明出处,谢谢! 作者:清林,博客名:飞空静渡 QVariant可以表示QT中的大部分类型,它和pascal中的variant类型或c中的void类型有点相似,不过它的使用和c中的un ...
- Qt多线程使用 和 信号与槽传参 需要注意的问题
Qt中提供了线程类,默认窗口是主线程,这个时候如果我们的业务逻辑很费时,就会一直使用主线程,页面可能会卡顿甚至崩溃.那么将业务逻辑放入子线程,能够避免页面的卡顿,保证操作是流畅的,还能提高程序的执行效 ...
- QTcpSocket使用过程中的一些问题记录
目前,在将原来C的socket通讯改为使用Qt类库QTcpSocket通讯,在修改过程中遇到不少问题,在此将问题一并记录,以备后面使用. 采用的通讯方式:QTimer定时器.QThread多线程和QT ...
最新文章
- 关于客户需求分析的讨论
- 【UGV】小车一些图片 麦轮版小车
- 串口与modem流量控制大全(2)
- Entity Framework 关系约束配置
- 随机信号功率谱估计方法matlab仿真
- js 的常用工具类库
- 我的口琴之路(附c调简谱)--------一个命中注定音乐巅峰是小星星的男人
- 晚清十大武林高手(电视里常引用的真实人物)
- 中国水煤浆行业“十四五”规划与运营模式分析报告2022~2028年
- CF #768 E.Flipping Ring
- linux gcc comand not,gcc: command not found
- 边吃烧烤边喝啤酒引发疾病
- 数据冗余技术—RAID
- linux objdump 函数,objdump命令
- windows 位图结构详解
- yolov8实现半标注
- word2016怎么去掉下面的红色波浪线
- 废品回收微信小程序开发方案
- 淘客基地公众号系统更新至v1.2.3版本
- 李嘉诚预言新操作系统即将面世 三星平台梦隐现
热门文章
- 2022-2027年(新版)中国钢铁产业运行状况及需求前景预测报告
- 新浪微博登陆页面html代码,仿新浪微博登陆邮箱提示效果的js代码
- QA智能问答(QQ匹配)
- 常用汉字库(约7千个)
- linux允许8000端口,Linux中如何开启8080端口供外界访问 和开启允许对外访问的端口8000...
- html动态生成tr标签,JS动态添加tr元素
- 计算四则表达式(中缀式转后缀式,然后计算结果)
- Axure RP小部件使用教程
- 黑苹果10.14.5安装WebDriver驱动nvidia独立显卡
- 微信测试是否被删软件,拒绝好友测试!教你在对方不知情下如何查看是否被微信好友删除...