IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Passage de paramètre signal/slot


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mic75
    Homme Profil pro
    Développeur Frontend
    Inscrit en
    Janvier 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Frontend
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 143
    Par défaut Passage de paramètre signal/slot
    Bonjour à tous,

    Dans une classe A j'ai déclaré un slot setPermanent(int,int). Je souhaite appeler ce slot quand la cellule d'un tableau "tabData" est modifiée, j'utilise donc le signal suivant (disponible dans la classe QTable) : valueChanged(int, int). A titre d'information, les deux entiers sont la ligne et la colonne de la cellule modifiée.

    J'effectue ma connexion via la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(editWin->tabData, SIGNAL(valueChanged(int,int)), this, SLOT(setPermanent(int,int))) ;
    Mon problème est le suivant : dans le slot setPermanent les paramètres (qui sont respectivement la ligne et la colonne) prennent des valeurs aberrantes !

    J'ai beau chercher je ne vos pas d'où cela pourrait venir. Merci d'avance pour vois remarques et suggestions.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    le connect est bon.

    tu pourrais mettre ta fonction?
    setPermanent(int,int)

  3. #3
    Membre confirmé Avatar de Mic75
    Homme Profil pro
    Développeur Frontend
    Inscrit en
    Janvier 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Frontend
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 143
    Par défaut
    Merci à toi de t'intéresser au problème.
    Voilà setPermanent :

    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
    void WinEdit::setPermanent(int row,int col)
    {
    	if(col == 3)
    	{
    		QCheckTableItem *ckItem = (QCheckTableItem*) editWin->tabData->item(row,col) ;
    		if(ckItem->isChecked())
    		{
    			editWin->tabData->item(row,2)->setText("permanent") ;
    			editWin->tabData->item(row,2)->setEnabled(false) ;
    		}
    		else
    		{
    			editWin->tabData->item(row,2)->setText("") ;
    			editWin->tabData->item(row,2)->setEnabled(true) ;
    		}
    	}
    }

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    rien de bizzare...
    Comment as tu vérifié que row et col prennent des valeurs aberrantes ?

    as tu des pointeur dans ton code où tu pourrais faire une erreur mémoire?

  5. #5
    Membre confirmé Avatar de Mic75
    Homme Profil pro
    Développeur Frontend
    Inscrit en
    Janvier 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Frontend
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 143
    Par défaut
    La condition n'était jamais respectée, du coup j'ai vérifié à coup de debugger et je me suis rendu compte à ce moment que row et col prenait des valeurs aberrantes (donc grâce au debbuger de vc++ 6).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    as tu des pointeur dans ton code où tu pourrais faire une erreur mémoire?
    oui, c'est d'ailleurs la piste que je privilégie. dans le connect editWin est un pointeur, tabData également. Mais je ne vois pour le moment pas en quoi cela poserait des difficultés...

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par M@t67 Voir le message
    La condition n'était jamais respectée, du coup j'ai vérifié à coup de debugger et je me suis rendu compte à ce moment que row et col prenait des valeurs aberrantes (donc grâce au debbuger de vc++ 6).
    tu ne serais pas en release?


    Citation Envoyé par M@t67 Voir le message
    oui, c'est d'ailleurs la piste que je privilégie. dans le connect editWin est un pointeur, tabData également. Mais je ne vois pour le moment pas en quoi cela poserait des difficultés...
    Je ne pense pas que ton problème se situe sur ces pointeurs puisque tu reçois bien un signal.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [QtCore] Passage d'argument signal / slot
    Par Neitsa dans le forum PyQt
    Réponses: 2
    Dernier message: 22/09/2011, 15h20
  2. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15
  3. [XSL] Passage de paramètres à un template
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2003, 13h28
  4. passage de paramètres
    Par pram dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/02/2003, 17h28
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo