Сигнал не работает в производном классе - PullRequest
0 голосов
/ 20 марта 2011

У меня есть такой код:

class A : public QObject 
{
    Q_OBJECT
public:
    explicit A(QObject *parent = 0) : QObject(parent) 
    {
        connect(&http, SIGNAL(done(bool)), this, SLOT(httpDone(bool)));    
    }

    void sendRequest() 
    {
        // ...
        http.request(...);
    }

public slots:
    void httpDone(bool)
    {
        qDebug() << "recieved!";
    }

protected:
    QHttp http;    

};

class B : public A
{
    //...
    void getSomething() 
    {
        sendRequest();
    }
};

class C : public A
{
    //...  
    void getSomething() 
    {
        sendRequest();
    }
};

// and now do some stuff
B b;
C c;
b.getSomething();
c.getSomething();

И есть только одно "получено!" сообщение в консоли от б. Почему?

1 Ответ

0 голосов
/ 21 марта 2011

Вы можете проверить, есть ли у вас макрос Q_OBJECT во всех производных классах.

...