Qt signaux et des slots dans les différentes classes

J'ai une classe X avec une fente, et une classe Y avec un signal. Je suis la mise en place de la connexion à partir de la classe de X, et a créé une méthode publique de la classe Y pour émettre le signal à partir de la classe X (je ne suis pas sûr que cette étape était nécessaire).

Alors, si j'appelle cette méthode de la classe X, le signal est émis, et que le logement est exécutée. Mais si j'émet le signal de la classe Y, logement n'est jamais exécutée et je ne comprends pas pourquoi.

Je tiens également à la classe de Y?

De ce pseudo-code tente d'expliquer ce que je veux:

class X  : public QWidget {
    Q_OBJECT

X(){
    connect(Y::getInstance(), SIGNAL(updateSignal(int)), this, SLOT(updateStatus(int)));
    Y::getInstance().emitSignal(someValue); //Works
}

public slots:
    void updateStatus(int value);

}

class Y : public QObject {

Q_OBJECT

Y(){

}

public:
    Y getInstance();
    void emitSignal(int value) { 
        emit updateSignal(value);
    }


signal:
    void updateSignal(int value);
}

class Z : public Y {
Z(){

}

init(){
 emitSignal(someValue); //Doesn't work
}
}
pouvez-vous donner un code? je ne peux pas comprendre exactement ce que vous essayez de dire
Non, vous devez établir une connexion qu'une seule fois. Veuillez poster une partie de votre code.
C'est du code très complexe, donc je vais poster quelques pseudo pour expliquer la question de mieux
Eh bien à partir de votre simplifié de code, il semble que vous essayez d'émettre le signal dans le constructeur, où la connexion n'est pas encore fait. Peut-être juste une simplification de l'artefact.
Une instance de l'objet X exister au moment où la fonction init() est appelée? (Je ne vois pas X instancié n'importe où dans votre pseudo/simplifié le code).

OriginalL'auteur Roman Rdgz | 2012-06-05