Créer nouveaux signaux paramètres différents
Bonjour,
Un problème qui se pose souvant: j'ai un objet de la librairie Qt qui émet un signal avec un(des) argument(s) qui ne me convient(nent) pas. Je suis obbliger d'heriter de cet classe:
Si on a une classe quelconque ClasseA qui possède un signal quelconque signalA(typeA) dans la librairie Qt. Je crée une classe ClasseB héritée de ClasseA. Je veux ajouter un signal signalB(typeB) à ClasseB. Ce signal doit se déclancher quand signalA est émit.
J'ai une solution barbare:
Je crée un nouveau slot slotB() dans ma ClasseB.
Je connecte signalA à slotB comme ceci:
Code:
connect(this,SIGNAL(signalA(typeA)),this,SLOT(slotB()));
C'est possible nb arguments identiques slot <= nb arguments identiques signal
Je définie slotB() comme cela:
Code:
1 2 3 4
| void slotB(){
typeB nouvelObjet;
emit signalB(nouvelObjet);
} |
En bref:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include <ClasseA>
class ClasseB : public ClasseA
{
public:
Classe B():ClasseA()
{
connect(this,SIGNAL(signalA(typeA)),this,SLOT(slotB()));
}
signals:
void signalB(typeB);
private slots:
void slotB()
{
typeB nouvelObjet;
emit signalB(nouvelObjet);
}
} |
Y a-t-il de meilleurs méthodes?