Object :: connect:没有这样的信号

pet*_*nic 3 qt signals-slots qobject

我有一个问题,用结构创建自定义插槽/信号.我有以下代码:

qRegisterMetaType<namespace::myClassA::aStruct>();
QObject::connect(&myClassA, SIGNAL(theSignal(myClassA::aStruct)),
                  &myClassB, SLOT(theSlot(myClassA::aStruct)));
Run Code Online (Sandbox Code Playgroud)

运行程序时我得到了:

Object::connect: No such signal NameSpace::myClassA::theSignal(myClassA::aStruct)
Object::connect:  (receiver name: 'NameSpace__CLASSNAME')
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

PS:插槽和信号已在头文件文件Q_SIGNALS和Q_SLOTS关键字中正确声明,并带有正确的参数(aStruct)

cma*_*t85 11

信号/插槽连接中使用的类型必须完全"作用域",因为方法调用将转换为文本,因此您的连接调用应如下所示:

QObject::connect(&myClassA, SIGNAL(theSignal(namespace::myClassA::aStruct)),
                 &myClassB, SLOT(theSlot(namespace::myClassA::aStruct)));
Run Code Online (Sandbox Code Playgroud)

您可能必须更新信号/插槽声明参数以匹配.