前言:
平常我们用信号槽 参数用qt内部定义的 和 c++ 的类型都是可以的
但是要传递一个自定义的结构体要怎么弄?
如果不注册 直接连接的话 编译是不会报错的 执行的时候会报错 不生效
struct my_Custom
{
...
...
...
}
-
在结构体下面 注册一下这个结构体
Q_DECLARE_METATYPE(my_Custom) -
添加 头文件 #include < QMetaType >
-
在connect 连接的上方 加一句 qRegisterMetaType< my_Custom >(“my_Custom”);
connect (A,&AA::signal(my_Custom),B,&BB::slot(my_Custom))
这样就可以了 注册一下 qt 就认识你的结构体了 否则他不认识 信号槽要根据参数 无法连接