我有一个问题 - 如何将基类信号连接到继承的类槽。我有这样的代码
class A: public QObject
{
Q_OBJECT
public:
A(){}
void EmitSignal()
{
emit(Asignal());
}
signals:
void Asignal();
};
class B: public A
{
public:
B();
public slots:
void Bslot()
{
//dosmth
}
};
B::B()
{
connect(this, SIGNAL(Asignal()), this, SLOT(Bslot()));
}
int main(int argc, char *argv[])
{
B Bobject;
B.EmitSignal();
}
当我打电话给B.EmitSignal()
时,我想要调用Bslot()
,但是我在输出窗口中收到了一条消息
QObject :: connect:没有这样的插槽A :: Bslot()。
我怎样才能实现Bslot()
执行?
找到了解决方案。我忘记了继承类中的Q_OBJECT宏