クラスのコンストラクターから内部で初期化されたクラスへのQtシグナルスロット接続を作成する必要があるプロジェクトに取り組んでいます。これは、コードがどのように見えるかです。以下の両方の接続を機能させたいのですが、出力が示唆することから、接続#1のみが機能します。私の質問は、接続#2を機能させる方法です!
クラスA
class classA :public QWidget{
Q_OBJECT
public:
classA(){
emit this->demoSignalA();
}
signals:
void demoSignalA();
public slots:
void demoSlotA(){qDebug()<<"SIGNAL FROM CLASS B"}
};
クラスB
class classB :public QWidget{
Q_OBJECT
public:
classB(){
classA *a = new classA;
connect(this, SIGNAL(demoSignalB()), a, SLOT(demoSlotA())); //WORKS
connect(a, SIGNAL(demoSignalA()), this, SLOT(demoSlotB())); //DOESN'T WORK
emit this->demoSignalB();
}
signals:
void demoSignalB();
public slots:
void demoSlotB(){qDebug()<<"SIGNAL FROM CLASS A";}
};
主要
int main(int argc, char *argv[]){
QApplication a(argc, argv);
...
...
classB b; //INVOCATION INITIATED
return a.exec();
}
出力
SIGNAL FROM CLASS B