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 :

QTableWidget écrire dans une autre cellule


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Par défaut QTableWidget écrire dans une autre cellule
    Bonjour,
    J'ai une QTableWidget tableau
    Voici ce que je veux obtenir :

    On saisit une donnée dans la colonne "recette".
    On ouvre un fichier texte et on récupère une chaîne stockée dans QString groupe.
    On affiche groupe dans une autre cellule (même ligne mais autre colonne).

    Voici le code (qui fait partie d'un slot perso dont le prototype est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void traitementSaisies(QTableWidgetItem*, QTableWidgetItem*);
    Il est relié au signal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentItemChanged(QTableWidgetItem*, QTableWidgetItem*)

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    if(fichierRecette.isOpen() == true)
                {
                    while (!lectureFichier.atEnd())
                    {
                        recetteLue = lectureFichier.readLine();
                        if (recetteLue == texteAffiche)
                        {
                            groupe = lectureFichier.readLine();
                            nbBU = lectureFichier.readLine();
     
                            previous->setFont(QFont("Microsoft Sans Serif", 8, QFont::Bold));
                            QColor couleurDefault(Qt::black);
                            previous->setForeground(QBrush(couleurDefault));
                            previous->setText(recetteLue);
     
                            /***************************/
                            /*** ICI SE SITUE LE PROBLEME ***/
                            /***************************/
                            tableau->setCurrentCell(tableau->currentRow(), 7);
                            tableau->currentItem()->setText(groupe);
     
                            fichierRecette.close();
                            break;
                        }
                        else if (lectureFichier.atEnd())
                        {
                            QMessageBox::warning(this, "", "<strong><H3>Recette absente.\nVeuillez vérifier votre saisie.</strong></H3>");
                            fichierRecette.close();
                            previous->setFont(QFont("Microsoft Sans Serif", 12, QFont::Bold));
                            QColor couleurErreur (Qt::red);
                            QBrush brushErreur (couleurErreur);
                            previous->setForeground(brushErreur);
                            previous->setText(("Erreur"));
                            previous->setTextAlignment(Qt::AlignCenter);
                        }
                    }
                }
    A l'exécution le programme plante.
    Merci de m'aider.

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Première chose à faire: trouver la source de l'erreur. Donc arme toi d'un debugger, trouve l'instruction qui plante, et on pourra t'en dire plus à ce moment.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Par défaut
    Heu...
    1) J'ai indiqué l'endroit qui pose problème.
    2) Qu'entends-tu par "armes-toi d'un debugger" ?

    Je suppose que le programme accède à une zone mémoire interdite mais je ne vois pas où se situe la source de ce problème.

  4. #4
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Par défaut
    Pour le problème j'ai pas regardé mais en tout cas pour le 2), quand on code il vaut mieux avoir à portée de main un debugger qui te permet de savoir qu'elle est l'instruction qui fait planter le tout et quels ont été les derniers appels, entre autres.

  5. #5
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Par défaut
    Au passage dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau->currentItem()->setText(groupe);
    currentItem() renvoie un pointeur qui peut être nul et auquel on ne peut alors appliquer setText(). Il faut vérifier que tes pointeurs ne sont pas nuls. Idem plus bas avec previous, qui je pense est le paramètre de ton slot, mais peut-être as tu déjà réalisé le test plus haut.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Par défaut
    previous->setText() fonctionne sans aucun problème.

    Pour le debugger, j'utilise Code::Blocks.
    Quelles sont les options à activer ?

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

Discussions similaires

  1. écrire dans une autre langue chinois et arabe
    Par pottiez dans le forum C++Builder
    Réponses: 0
    Dernier message: 29/07/2008, 14h17
  2. Inscrit l'adresse d'une cellule sélectionnée dans une autre cellule
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2008, 22h26
  3. Copier une cellule dans une autre cellule
    Par zis0907 dans le forum Excel
    Réponses: 1
    Dernier message: 24/04/2008, 18h24
  4. Recupere la valeur d'une ComboBox dans une autre cellule
    Par Henricoo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/06/2007, 13h56
  5. [HTML] click lien sur une cellule et page qui s'ouvre dans une autre cellule
    Par mariogarcia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 24/05/2006, 14h37

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