Qt 信号槽传递自定义的结构体

前言:

平常我们用信号槽 参数用qt内部定义的 和 c++ 的类型都是可以的

但是要传递一个自定义的结构体要怎么弄?

如果不注册 直接连接的话 编译是不会报错的 执行的时候会报错 不生效

struct my_Custom
{
	...
	...
	...
	
}
  1. 在结构体下面 注册一下这个结构体
    Q_DECLARE_METATYPE(my_Custom)

  2. 添加 头文件 #include < QMetaType >

  3. 在connect 连接的上方 加一句 qRegisterMetaType< my_Custom >(“my_Custom”);

    connect (A,&AA::signal(my_Custom),B,&BB::slot(my_Custom))

这样就可以了 注册一下 qt 就认识你的结构体了 否则他不认识 信号槽要根据参数 无法连接

发布了171 篇原创文章 · 获赞 386 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_42837024/article/details/104946250