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:C'est possible nb arguments identiques slot <= nb arguments identiques signal
Code : Sélectionner tout - Visualiser dans une fenêtre à part connect(this,SIGNAL(signalA(typeA)),this,SLOT(slotB()));
Je définie slotB() comme cela:
En bref:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void slotB(){ typeB nouvelObjet; emit signalB(nouvelObjet); }
Y a-t-il de meilleurs méthodes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Partager