Bootstrap

Qt中自定义结构体的使用

Qt的自定义结构体Qt是不认识的,下面就直接列出使用方法

第一步 建议把所需的结构体放在一个单独头文件中,防止头文件相互包含,gg,而且还有条件编译的头自动生成。直接向工作添加C++头文件。

在这里插入图片描述
自己把名字取好就行了。
注意:这样会在.pro中 HEADERS += \ 添加的,如果编译发现一些东西找不到,记得去检查下.pro文件。

第二步 写好自己的结构体,记得向QT声明这个结构体,调用Q_DECLARE_METATYPE,当然头文件QMetaType不要忘了,如:
#include <QMetaType>                            //自定义参数类型的头文件----***
struct similarityInfo{
    QImage img1;                                //图片1
    QImage img2;                                //图片2
    lj_handle_t m_fDetect;                      //人脸检测句柄
    lj_handle_t m_fVerfity;                     //人脸比对句柄

//    operator QVariant() const
//    {
//         return QVariant::fromValue(*this);
//    }
};
Q_DECLARE_METATYPE(similarityInfo)             //要调用Q_DECLARE_METATYPE,向QT声明这个结构体----***
第三步 在main函数中用qRegisterMetaType注册自定义参数的类型,如:
qRegisterMetaType<similarityInfo>("similarityInfo");----***
第四步 自定义头文件一包含,就可以使用了。上面的入口参数都是你的结构体名字哈。
;