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)
您可能必须更新信号/插槽声明参数以匹配.