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 : récupération de valeur


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 32
    Points : 23
    Points
    23
    Par défaut QTableWidget : récupération de valeur
    Bonjour à tous,

    Dans le cadre d'un projet de carnet d'adresses, donc simplement une QList<MyContact> pour effectuer le stockage des données, j'affiche les différents paramètres de chacun des contacts dans une QTabelWidget via les lignes de code suivantes :
    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
     
    void MyMainWindow::LoadContactList()
    {
        if(m_MyPhoneBook.m_pSheetList->count() < 1)
            return;
     
        if(m_MyPhoneBook.m_pSheetListCorp->count() < 1)
            return;
     
        m_pTableWidgetContact->setRowCount(m_MyPhoneBook.m_pSheetList->count());
     
        //Chargement des contacts dans le tableur
        for(int i = 0 ; i < m_MyPhoneBook.m_pSheetList->count() ; ++i)
        {
            //Récupération et affichage des infos du contact
            QTableWidgetItem *item0 = new QTableWidgetItem;
            item0->setData(Qt::DisplayRole, m_MyPhoneBook.m_pSheetList->at(i)->GetContactCivility());
            item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
            m_pTableWidgetContact->setItem(i, 0, item0);
     
            QTableWidgetItem *item1 = new QTableWidgetItem;
            item1->setData(Qt::DisplayRole, m_MyPhoneBook.m_pSheetList->at(i)->GetContactName());
            item1->setFlags(item1->flags() & ~Qt::ItemIsEditable);
            m_pTableWidgetContact->setItem(i, 1, item1);
     
            //etc pour chacun des contacts et cela sur 27 colonnes
        }
    L'affichage se fait correctement, mais j'ai une fonction d'édition de contact qui devrait fonctionner à partir d'une ligne sélectionnée de la QTableWidget et m’afficher dans une fenêtre secondaire les données du contact.

    Sauf que je n'arrive à récupérer aucun élément de la ligne ..

    Mon soucis est donc de pouvoir récupérer l'ID du contact, paramètres pouvant être présent sur la ligne en question dans une cellule, et de parcourir ma QList en cherchant cet ID.

    Je ne peux passer par le numéro de ligne car la QTableWidget en question pourra se voir modifier via un filtre de recherche, la ligne en question ne correspondrait donc pas du tout à son index dans ma QList.

    Je sais qu'il y a les méthodes via Modèle et View qui pourraient en principe fonctionner, mais ayant déjà essayé dans l'ancienne version de ce projet sans succès . Aucun affichage et erreur d'index lors du filtrage de ma liste ou du tri par ordre alphabétique, j'avais donc abandonné cette solution à l'époque (surement certains mécanismes m'ayant échappés).
    J'ai également trouvé peu d’informations m'étant utiles sur les forums ou la doc car ne montrant que des exemples standards ..

    Je suis partant pour retenter la solution MVC, mais si quelqu’un maîtrisant réellement ces mécanismes me donnait un coup de main

    Je suis ouvert à toutes réponses, hormis les trollages habituels (cela fait plusieurs jours que j'écume les forums avant d'avoir posé ma question ^^ )

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Quelle est la problématique ?
    Aussi, pour le filtrage et le tri, ne pourriez vous pas utiliser un proxy (sur le modèle) ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Le problème était de pouvoir parcourir les éléments d'un modèle affiché dans une vue quelconque via un indice indépendant de l'indice de l'ordre dans lequel ils sont affichés.

    Mais j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        int r = m_pTableWidgetContact->currentRow();//Récupération du numéro de la ligne
     
        QTableWidgetItem *item = m_pTableWidgetContact->item(r, 15);//Récupération de l'Item de la ligne en question à la Colonne 15 pr récupérer l'ID du contact(colonne masquée à l’utilisateur)
     
        uint64_t iIDContact = item->text().toInt();//Conversion en valeur numérique de l'item
    Et à partir de là j'arrive à récupérer les infos dont j'ai besoin en fonction de la ligne sélectionnée.

    Ce n'est peut être pas super "propre" mais ça fait le taff en 3 lignes de codes ^^

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

Discussions similaires

  1. [checkbox] Récupération des valeurs de checkbox
    Par chng001 dans le forum Struts 1
    Réponses: 13
    Dernier message: 07/09/2009, 20h31
  2. Réponses: 3
    Dernier message: 01/02/2008, 14h12
  3. [struts] [checkbox] récupération des valeurs cochées
    Par abourell dans le forum Struts 1
    Réponses: 16
    Dernier message: 10/06/2005, 20h58
  4. récupération de valeur de lien
    Par sex-sansbol dans le forum ASP
    Réponses: 3
    Dernier message: 07/06/2004, 10h43
  5. Récupération de valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 25/03/2004, 10h59

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