当前位置: 首页 > news >正文

跨线程connect传参的错误

转自个人博客

最近在使用connect连接信号与槽并且传参的时候,报了如下错误:

QObject::connect: Cannot queue arguments of type 'QMap<int, QString>' (Make sure 'QMap<int, QString>' is registered using qRegisterMetaType().)

刚见到这错误就猜想是不支持自定义变量类型,但是connect用了这么多了,其他各种类型甚至不是Qt的类型也都能传。后来搜了一下才发现是可能多线程的问题,Qt无法自动序列化并传递这种类型。

注:有时候不会直接报错,只是运行代码后会出现信号无法正常触发槽函数

而解决办法也很简单,在跨线程连接需要传递自定义数据类型时,提前使用qRegisterMetaType()将其注册为元数据类型,以便让Qt默认对其进行处理。注意格式,如下:

qRegisterMetaType<QMap<int, QString>>("QMap<int, QString>");
http://www.lryc.cn/news/574927.html

相关文章:

  • 微信小程序适配 iPhone 底部导航区域(safe area)的完整指南
  • 打造丝滑的Android应用:LiveData完全教程
  • 程序快速隐藏软件,提高工作效率
  • 如何搭建CDN服务器?
  • 半导体FAB中的服务器硬件故障监控与预防全方案:从预警到零宕机实战
  • 计算机网络 网络层:控制平面
  • Spring Cloud Ribbon核心负载均衡算法详解
  • 南北差异之——跨端理解能力
  • 基于QT(C++)实现(图形界面)文档编辑器
  • 基于R语言的亚组分析与森林图绘制1
  • 惠普HP Laser MFP 116w 打印机信息
  • TDengine 的 CASE WHEN 语法技术详细
  • 夏至之日,共赴实时 AI 之约:RTE Open Day@AGI Playground 2025 回顾
  • CentOS 6 Linux 系统添加永久静态路由的方法详解!
  • CentOS 8 安装第二个jdk隔离环境
  • LLaMA-Factory 合并 LoRA 适配器
  • vscode管理go多个版本
  • GO 语言学习 之 运算符号
  • YOLOv13发布 | 超图高阶建模+轻量化模块,保证实时性的情况下,检测精度再创新高!
  • OpenCV——cv::floodFill
  • 环保法规下的十六层线路板创新:猎板 PCB 如何实现无铅化与可持续制造
  • 玛哈特机械矫平机:精密制造的“应力消除师”与“平整度雕刻家”
  • IDEA高效开发指南:JRebel热部署
  • EloqCloud for KV 初体验:兼容redis的云原生KV数据库
  • 机器学习基础 线性回归与 Softmax 回归
  • zlib库使用
  • 51c嵌入式~CAN~合集2
  • Java动态调用DLL
  • 数据结构?AVL树!!!
  • 2200、找出数组中的所有K近邻下标