我的 class X 继承自Qt的 class Base . 我在我的类 X 和我'm connecting some signal to this slot in X'的构造函数中声明并定义了 void mySlot() 槽 . 但是,在运行我的程序时,我收到一条错误消息,指出在类 Base 中没有 void mySlot() 这样的插槽 .
X
Base
void mySlot()
为什么Meta Object Compiler(moc)生成的代码在基类中寻找我的插槽而不是在我的(派生)类中?
您是否在派生类上添加了Q_OBJECT宏?
来自#qt irc Channels
确保Q_OBJECT宏存在于所有QObject派生类的定义中 .
确保仅在头文件中声明QObject派生类 .
确保所有头文件都列在HEADERS =列表中的.pro文件中 .
每次将Q_OBJECT添加到其中一个类或修改.pro文件时运行qmake .
2 回答
您是否在派生类上添加了Q_OBJECT宏?
来自#qt irc Channels
确保Q_OBJECT宏存在于所有QObject派生类的定义中 .
确保仅在头文件中声明QObject派生类 .
确保所有头文件都列在HEADERS =列表中的.pro文件中 .
每次将Q_OBJECT添加到其中一个类或修改.pro文件时运行qmake .