qt - 对象::连接:没有这样的信号

标签 qt signals-slots qobject

我在使用结构创建自定义插槽/信号时遇到问题。我有以下代码:

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/

相关文章:

c++ - qt QWidget 点击

c++ - 从 Boost signals2 信号调用的仿函数的成员变量不更新

python - PyQt:ListWidget.insertItem 未显示

c++ - 什么时候适合使用 Qt 信号向下通信依赖树?

c++ - qt - qt 控制台应用程序中对 `vtable for myObj' 的 undefined reference - 信号和插槽

c++ - 运行时检查失败 #0 - ESP 的值未在函数调用中正确保存

C++ 从字符串调用方法

c++ - 使用 Qt 解析 JSON

C++同时运行2个程序-SMS getaway-

c++ - 从基于 QObject 的类继承构造函数