zoukankan      html  css  js  c++  java
  • 【QT】如何在信号中带上自定义类型参数?

    一、问题描述

    在qt开发软件时,使用信号与槽机制,信号中带了自定义的枚举类型参数,在emit发出信号时,出现以下错误

    QObject::connect: Cannot queue arguments of type 'XXX'
    

    二、解决方法

    在main.cpp中添加头文件:

    #include <QMetaType>
    

    然后使用qRegisterMetaType注册自定义类型到元对象系统中,主要作用为QObject的属性系统(信号槽)中使用该自定义类型。

    qRegisterMetaType<MyType>("MyType");
    

    qRegisterMetaType使用的情况

    qRegisterMetaType 必须使用的两种情况

    • 如果非QMetaType内置类型要在 Qt 的属性系统中使用
    • 如果非QMetaType内置类型要在 queued 信号与槽 中使用
  • 相关阅读:
    python框架之Django(2)-简单的CRUD
    python框架之Django(1)-第一个Django项目
    实习进度13
    实习进度12
    实习进度11
    实习进度10
    学习进度08
    毕设进度07
    毕设进度06
    毕设进度05
  • 原文地址:https://www.cnblogs.com/lcgbk/p/14707857.html
Copyright © 2011-2022 走看看