QT解决报错registered using qRegisterMetaType()

这篇具有很好参考价值的文章主要介绍了QT解决报错registered using qRegisterMetaType()。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在qt日常使用中,信号与槽机制是绝对不可或缺且常用的,其中的参数一般都会比较简单,bool、int、QString之类的,但当我们想要传递相对比较复杂的参数,例如QVector<int>、QList<QString>,以及一些我们自定义的结构体时,就会出现报错:

> QOBject::connect:Cannot queue arguments of type 'QVector<int>'   
> (Makesure 'QVector<int>' is registed using qRegisterMetaType().)

原因大概就是信号槽的参数不支持你自定义的类型,只能识别QT库中最基本的类型参数,所以需要对自定义类型进行注册

qRegisterMetaType<QVector<int>>("QVector<int>");

注意,不是在定义类型,或者定义结构体的地方进行注册,而是在所需要用到的类的构造函数中进行注册,比如我的一个自定义类,需要用到自定义的结构体做信号参数,就在他的构造函数中注册一下

CameraStartStop::CameraStartStop(QWidget *parent):QObject(parent)
{
    qRegisterMetaType<QVector<int>>("QVector<int>");//不注册会警告
    setParent(nullptr);
    //......
}

注册完就不会报错,能够正常使用了文章来源地址https://www.toymoban.com/news/detail-512832.html

到了这里,关于QT解决报错registered using qRegisterMetaType()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【日常踩坑】解决 pip 安装第三方包时因 SSL 报错

    好久没用 python ,最近重新下载安装好 python 后发现用 pip 安装第三方包一直失败。经过一番折腾发现,如果报错信息符合下面两种,一般都是因为网络连接时 SSL 认证失败导致的 check_hostname requires server_hostname raise ValueError(\\\"check_hostname requires server_hostname\\\") ValueError: check_hostname

    2023年04月12日
    浏览(47)
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。

    本文是深度学习和日常代码中遇到的报错汇总,因时间比较久,暂时都没有图片,只有文字描述。解决方案也大多参考网上的解决方案,有些有用,有些没有效果,本文章中的问题,也仅是本人遇到的问题,使用列举的方案已经解决。 处理:调用的方法是一个类,需要先进行

    2023年04月22日
    浏览(53)
  • Windows下seata报错为can not register RM,err:can not connect to services-server的解决办法,亲测有效。

    nacoc下的服务: 点开seata的TC服务看一下里面的地址, 左下角为你该服务的ip地址。  上图我的ip地址是我目前在用的校园网地址也就是你的桌面右下角的网络地址。  我之前报错的原因呢是因为他这里的默认的ip是我之前虚拟机VMnet8的地址,这跟我另外三个的服务地址不出在

    2024年02月05日
    浏览(82)
  • 【踩坑日常】解决Eureka启动报错:Network level connection to peer localhost;retrying after delay

    最近在使用Spring Cloud的Eureka服务时,遇到了一个线上问题:Eureka启动一直报错,提示 Network level connection to peer localhost;retrying after delay 。通过一番排查,发现问题的根本原因竟然是配置文件中的 eureka defaultZone 未生效,而造成这一情况的直接原因是 spring.profiles 未正确激活。

    2024年02月03日
    浏览(49)
  • nvm报错Now using node v版本号 (64-bit)解决方法

    先上报错 (安装后的一些问题请直接跳到尾部查看) 安装NVM的原因是使用React时 add react-redux时 提示我node版本问题,遂打算安装一Node版本管理工具 因为我电脑上很早就安装了Node,安装NVM时提示我是否覆盖并管理本地已有版本,我选了Yes之后 安装成功 (后来检查发现 和版本

    2024年02月02日
    浏览(44)
  • AD报错:Your license is already used on computer解决办法

            相同的license用在了同一个网络下的两台电脑的AD软件上了;         1.打开AD的设置----system----Account Management----no, i wish to remain disconnected from Altium          2. 打开AD的设置----system----Network activity----取消全部勾选         3.  打开AD的设置----system----installation 

    2024年02月06日
    浏览(181)
  • weditor_抓取ios控件报错Address already in use解决方法

    容我墨迹一下,,,,, 用了几天的macaca自带的控件抓取实在是太慢了,每次刷新控件都要重新载入,appium inspecor一直配置不上,就试了一下weditor,因为写安卓脚本也是用的weditor抓取控件,还是挺方便的 使用以下命令安装weditor 可能会报错版本过低,使用提示的命令安装一

    2023年04月08日
    浏览(63)
  • ntpdate解决同步时间报错 the NTP socket is in use, exiting

    今天为了同步服务器时间,使用该命令时会收到下列错误消息。 13 Apr 15:48:18 ntpdate[124176]: the NTP socket is in use, exiting

    2024年02月04日
    浏览(43)
  • ESlint报错Error: Must use import to load ES Module解决方法

    适用nvm工具将node版本从 12.16.3 切换到 16.15.1

    2024年02月12日
    浏览(40)
  • 解决ValueError: Error initializing torch.distributed using env:// rendezvous:: environment variable 报错

    在命令行运行程序时候可成功跑通,但在程序调试过程中出现如下错误:  源代码: 修改后:  import torch.distributed as dist import os os.environ[\\\'MASTER_ADDR\\\'] = \\\'localhost\\\' os.environ[\\\'MASTER_PORT\\\'] = \\\'5678\\\' dist.init_process_group(backend=\\\'nccl\\\', init_method=\\\'env://\\\', rank = 0, world_size = 1)

    2024年02月11日
    浏览(270)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包