подключить сигнал базового класса к унаследованному слоту класса

У меня вопрос - как подключить сигнал базового класса к унаследованному слоту класса. у меня такой код

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() исполнения?


person Anton Polunin    schedule 26.10.2017    source источник


Ответы (1)


Решение найдено. Я забыл макрос Q_OBJECT в унаследованном классе

person Anton Polunin    schedule 26.10.2017