2017-10-26 12 views
0

私は質問があります - ベースクラス信号を継承クラススロットに接続する方法。 I`veこのベースクラス信号を継承クラススロットに接続

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 ::接続中にメッセージが表示されました:そのようなスロットをA :: Bslot()。

Bslot()の実行方法を教えてください。

答えて

0

解決策が見つかりました。私は継承されたクラスのQ_OBJECTマクロを忘れました

関連する問題