Bonjour à tous!
dans mon projet, je dois faire communiquer deux classes cameraSettings et camera qui sont créées en même temps.
camera dialogue avec une camera qui lui est associé, et cameraSettings est une interface graphique pour régler les paramètres d'utilisation de la caméra. Il est donc impératif que ces deux classes puissent s'échanger des informations.
Pour ce faire j'ai déclaré dans chaque classes une variable du type de l'autre classes :
de cette façon, une fois les classes créées, je fais le lien les objets :
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 //cameraSettings.h #include "camera.h" class cameraSettings :public QWidget { Q_OBJECT public : cameraSettings (); camera *cam; }; //camera.h #include "cameraSettings.h" class camera { public : camera(); cameraSettings *gui; };
et ...... ca marche!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 camera *cameraS = new camera(); cameraSettings *displayS = new cameraSettings(); cameraS->gui = &displayS; displayS->cam = &cam;
par contre là où ça ne marche plus c'est quand il y a plusieurs cameras : chaque camera étant controlées par un couple camera/cameraSettings, je dois donc créer autant de couple qu'il y a de caméras. J'utilise donc des tableaux d'objets :
tout compile correctement, mais le programme plante dès que l'une des classes utilise l'autre.... et évidement je ne sais pas comment faire... donc help si je puis me permettre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //les headers des deux classes ne changent pas. camera *cameraS[nbCamera]; cameraSettings *displayS[nbCamera]; for (int i = 0; i < nbCamera ; ++i) { cameraS[i]->gui = displayS[i]; displayS[i]->cam = cameraS[i]; }
Merci d'avance!
Partager