我在使用结构创建自定义插槽/信号时遇到问题。我有以下代码:
qRegisterMetaType<namespace::myClassA::aStruct>();
QObject::connect(&myClassA, SIGNAL(theSignal(myClassA::aStruct)),
&myClassB, SLOT(theSlot(myClassA::aStruct)));
运行程序时我得到:
Object::connect: No such signal NameSpace::myClassA::theSignal(myClassA::aStruct)
Object::connect: (receiver name: 'NameSpace__CLASSNAME')
如何解决这个问题?
PS:槽和信号已在头文件文件 Q_SIGNALS 和 Q_SLOTS 关键字中正确声明,并使用正确的参数(aStruct)
最佳答案
信号/槽连接中使用的类型必须完全“限定范围”,因为方法调用会转换为文本,因此您的连接调用应如下所示:
QObject::connect(&myClassA, SIGNAL(theSignal(namespace::myClassA::aStruct)),
&myClassB, SLOT(theSlot(namespace::myClassA::aStruct)));
您可能需要更新信号/槽声明参数以匹配。
关于qt - 对象::连接:没有这样的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773415/