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 :

Recherche dans un QTableWidget

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 342
    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 342
    Par défaut Recherche dans un QTableWidget
    Bonsoir,

    J'avais besoin de rechercher une donnée dans un qtablewidget en récupérant la position de la 1ere occurrence trouvée.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QList<QTableWidgetItem*> liste=tableau->findItems("test",Qt::MatchContains); //tableau : mon qtablewidget
    item=liste.at(0);
    qDebug()<<"ligne : "<<item->row()<<"colonne : "<<item->column();
    Je récupères donc sans problèmes l'info souhaité.

    Par contre là ou je me questionne, c'est que j'ai essayé de parcourir mon tableau sans trouver l'info de la façon suivante :

    voici le 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    // initialisation du tableau
    tableau=new QTableWidget();
    tableau->setRowCount(10);
    tableau->setColumnCount(10);
    for (i=0;i<10;i++)    
    {
      for (j=0;j<10;j++)
      {
        item=new QTableWidgetItem();
        item->setText("a");
        tableau->setItem(i,j,item);
      }
    }
     
    // code d'affichage des éléments du tableau
     
    for (i=0;i<tableau->rowCount();i++)
    {
      for (j=0;j<tableau->columnCount();j++)
      {
         item2=tableau->itemAt(i,j);
         chaine2=item2->text();
        qDebug()<<"ligne : "<<i<<"colonne : "<<j<<"item : "<<item2<<"chaine ; "<<chaine2;
      }
    }
    cela m'affiche les "a" de toutes les lignes et colonnes même si je modifie une case en saisissant qq chose dedans. Pourquoi les cases que j'ai modifié n'apparaissent t'elles pas ? Je précises que l'initialisation du tableau est la même que pour mon code de recherche opérationnel.

    j'ai pas besoin de ce code, c'est juste pour comprendre.

    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
    Je ne comprends toujours pas pourquoi tu déclares des pointeurs locaux en membre...

    Sinon y'avait un autre topic y'a pas longtemps sur ce souci, c'est pas itemAt() qu'il faut utiliser mais item(), regarde la doc pour comprendre.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 342
    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 342
    Par défaut ok j'ai compris
    effectivement, en relisant la doc attentivement j'ai compris mon erreur.

    item attend des coordonnées xy tandis que itemat attend en paramètre un objet qpoint contenant lui-même x,y mais isNull etc ...


    Merci Troudyl
    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

  4. #4
    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
    Alors tu n'as pas compris du tout...

    itemAt() attend des coordonnées x/y, soit une position en pixels dans le tableau affiché, alors qu'item() attend des coordonnées ligne/colonne, celles que tu lui passes, il suffit de lire la signature des méthodes.

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

Discussions similaires

  1. Récupération dans un QtableWidget une recherche via .findItems
    Par aurelie.guegan.15 dans le forum PyQt
    Réponses: 2
    Dernier message: 06/01/2015, 17h06
  2. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57
  3. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 15h10
  4. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44

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