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

Discussion :

setCurrentItem()

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 260
    Par défaut setCurrentItem()
    Bonjour,

    J'ai un soucis d'utilisation avec setCurrentItem.

    Je cherche à modifier le texte d'une cellule d'un QTableWidget. Au moment de la modif de la cellule selectionnée, celle-ci peut être vide.

    voici mo code :
    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
     
    QTableWidgetItem* item; 
     
    item=tableau->currentItem(); //tableau=QTableWidget
    qDebug()<<"adr item :"<<item;
    if (item==NULL)
    {
     item=new QTableWidgetItem();
     qDebug()<<"new item :"<<item;
     tableau->setCurrentItem(item);
     item=tableau->currentItem(item);
     qDebug()<<"new item reaffichage"<<item;
     qDebug()<<"currentitem"<<tableau->currentItem();
    }
    tableau->currentItem()->setText("essai");
    j'ai un SEGFAULT avec pourtant une valeur nulle affichée dans la console sur la ligne "new item reaffichage" ainsi que sur la ligne "currentitem".

    J'ai controuné le prob en remplaçant setCurrentItem par setItem(tableau->currentRow(),tableau->currentColumn,item) et là ça fonctionne. D'ou vient le prob avec setcurrentitem ?


    Merci pour vos lumières.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Bonjour,

    Le code que tu as copié ne compile pas c'est sûr, notamment ligne 11.

    Ensuite c'est normal, tu demandes à ton tableau de rendre courant un item qui n'en fait pas partie, donc il ne le trouve pas, donc currentItem() te renvoie désormais NULL. Donc il faut d'abord placer ton nouvel item dans le tableau. Dans tous les cas, les pointeurs ça se teste avant utilisation pour éviter les plantages.

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

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