2011-03-19 3 views
0

에서 작동하지 않습니다 : "받았다"신호 내가 이러한 코드가 파생 클래스

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(); 

를 그리고 하나가 콘솔의 메시지 b. 왜?

+1

'B'와'C'의 생성자는 어떻게 생겼습니까? – Mat

+1

완전한 예제를 게시해야합니다. 이렇게하면 적절한 이벤트 루프가 있는지 확인할 수 있습니다. –

+1

파생 된 클래스에서 신호가 제대로 작동합니다. connect()에서 반환 코드를 확인하여 실수를 범한 경우 알려줍니다. –

답변

0

모든 파생 클래스에 Q_OBJECT 매크로가 있는지 확인할 수 있습니다.