Forum QtFR

La communauté francophone Qt

Vous n'êtes pas identifié(e).

Annonce

Qt 4: 4.8.4 - Qt 5: 5.0.2 - Qt Creator: 2.7.1 - Qt Installer: 1.3.0 - VS Qt 4: 1.1.11 - VS Qt 5: 1.2.1 - Monkey Studio: 1.9.0.4

#1 08-05-2012 22:09:03

Elendile
Initié(e) Qt
Inscription : 28-04-2012
Messages : 42

probléme de declaration et passage de variable

bonsoir tout le monde

mon projet comporte 3fichiers sans comptant le fichier.pro , main.cpp , mainwindow.cpp , mainwindow.h

mon main.cpp est programmé ainsi :


mon mainwindow.cpp est ainsi programmé :

et mon mainwindow.h est ainsi programmé :

Mon problème est le suivant
comme erreurs il m'affiche

1) tab / s / gray / compt        has not been declared
2)width/height                      is not a type

or que j'ai bien déclaré dans le main.cpp à partir de la ligne 33 donc voilà quelqu'un pourrait me dire pourquoi il ne les reconnais pas or que le programme commence toujours par compilé depuis le main.cpp


j'ai oublié de préciser que mon problème réside dans la fonction MainWindow::buildtab du fichier mainwindow.cpp précisément le passage des arguments       tab s gray height width compt qui ont étaient bien déclaré dans le fichier main.cpp

l'erreur se situe dans la ligne 46 du fichier mainwindow.h



n'importe quelle repense sera la bienvenue et merci d'avance
cordialement .

Dernière modification par Elendile (08-05-2012 22:29:34)

Hors ligne

#2 08-05-2012 22:32:20

p3p3te
Membre(e) Qt
Lieu : Alsace
Inscription : 17-06-2010
Messages : 142

Re : probléme de declaration et passage de variable

Salut,

Tu développe d'une façon un peu "bizarre" à mon goût, déjà pour le width et height, comment il peut récupérer une valeur grâce à grey->width() ? Je pense que cette variable a été créée, initialisée et remplie dans ton mainwindows ? Tu dois donc utiliser des accesseurs pour récupérer cette variable.

Du coup tu feras un w.getGray->width();

La fonction getGray sera à développer pour faire un return de ton gray.



Et pour ton slot, il ne connait pas les "types" donc

tab est remplacé par ton tableau int[], width par int, height par int .... Il ne veut rien savoir du nom que tu donneras à tes variables mais leur typage ;-).

Exemple :

Dernière modification par p3p3te (08-05-2012 22:37:36)

Hors ligne

#3 08-05-2012 23:11:12

Elendile
Initié(e) Qt
Inscription : 28-04-2012
Messages : 42

Re : probléme de declaration et passage de variable

est ce que les ok sont des arguments ?! donc je doit mettre void buildtab(int** tab,int width,int height,CvScalar s,IplImage* gray,int &compt) ou j'ecrit juste leur type dans le mainwindow.cpp !

pareil pour la connection

QObject::connect(actionBuild, SIGNAL(triggered()), this, SLOT(buildtab(int** tab,int width,int height,CvScalar s,IplImage* gray,int &compt)));

ou bien j'écrit que leur type car il m'affiche des erreurs à ce niveau là .

Hors ligne

#4 08-05-2012 23:18:38

p3p3te
Membre(e) Qt
Lieu : Alsace
Inscription : 17-06-2010
Messages : 142

Re : probléme de declaration et passage de variable

Hum dans la déclaration de tes slots ce sera toujours avec les types comme tu l'as décrit.

Ensuite il te faut savoir que pour un SIGNAL donné, ton slot devra posséder autant de variable ... En l’occurrence ici ton triggered() n'en possède aucun donc il ne pourra pas appeler ton slot.
Dans ce cas tu définis un slot intermédiaire sans paramètre que le signal triggered appelera puis dans ce slot, tu feras toi même appel à la fonction buildtab en lui passant en paramètre tout ce que tu désires.

J'ai pu t'éclairer ? C'est vrai que ça parait simple pour moi mais pour d'autres peut-être moins, n'hésite pas à poser des questions et du code rafraichi ;-).


Dernière modification par p3p3te (08-05-2012 23:21:37)

Hors ligne

#5 08-05-2012 23:44:32

Elendile
Initié(e) Qt
Inscription : 28-04-2012
Messages : 42

Re : probléme de declaration et passage de variable

pour les connexions j'ai mis sa :

et pour la fonction reception :

cependant il me dit que tab s gray compt ne sont pas déclaré on this scope il les reconnait pas ils sont à l'interieurs de MainWindow::receptionTriggered()

Hors ligne

#6 09-05-2012 01:56:33

Elendile
Initié(e) Qt
Inscription : 28-04-2012
Messages : 42

Re : probléme de declaration et passage de variable

je me suis bien creusé la tête j'ai aboutis à sa mais c'est toujours pareil il me dit comme erreurs :

QObject::connect: Incompatible sender/receiver arguments
        QAction::triggered() --> MainWindow::receptionTriggered(int**,int,int,CvScalar,IplImage*,int&)
Object::connect: No such signal QAction::receptionTriggered(int**,int,int,CvScalar,IplImage*,int&) in ..\pfe\mainwindow.cpp:54

voilà se que j'ai rajouté
dans mon fichier mainwindow.cpp

l'erreurs est dans la ligne N°2 là 2eme Qobjet::connect

pour mon mainwindow.h aucun problème j'ai rajouté le receptiontrigged comme ceci

Hors ligne

#7 09-05-2012 07:21:48

babaOroms
Administrateur Qt
Lieu : Alpes de Haute Provence
Inscription : 29-11-2004
Messages : 1 763

Re : probléme de declaration et passage de variable

Salut,

Dans un premier temps, regardes la doc signal/slot à l'adresse http://www.siteduzero.com/tutoriel-3-11 … slots.html
C'est pas mal fait.
Tu verras qu'il faut les mêmes arguments entre les signaux et slots.
Ensuite ta QAction (actionBuild) n'a effectivement pas de signal receptionTriggered voir la doc de QAction.
Pour le rajouter, il faut coder une class qui dérive de QAction et qui possède ce signal.
Attention, les signaux doivent être déclarés dans une section appelée signals et le slots dans private/public slots

Romain


Avant il était roms18, mais ça c'était avant.
It is impossible to make anything foolproof because fools are so ingenious (Murphy's law).

Hors ligne

#8 09-05-2012 12:04:13

p3p3te
Membre(e) Qt
Lieu : Alsace
Inscription : 17-06-2010
Messages : 142

Re : probléme de declaration et passage de variable

Comme l'a souligné babaOroms, il te faut acquérir au moins les bases du fonctionnement des signaux / slots. Ce sera plus simple pour toi pour la suite.

Hors ligne

#9 09-05-2012 20:24:29

Elendile
Initié(e) Qt
Inscription : 28-04-2012
Messages : 42

Re : probléme de declaration et passage de variable

ok merci je crois que je commence à comprendre c'est vrai que j'ai pas trop lu la doc je vais m'y mettre .

Hors ligne

Pied de page des forums


Sitemap QtFR