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 :

index des QTableView et QListView


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 63
    Par défaut index des QTableView et QListView
    Bonjour,

    j'ai créé des QTableView et QListView dans une mainWindow de cette manière :

    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
    ....
    void Table::createLayout(){
     
        model=new QDirModel;
        gridGroupBox = new QGroupBox(tr("Input Data"));
     
        layout = new QGridLayout;
        table=new QTableView;
     
        table->setModel(model);
        table->setRootIndex(model->index(path));
     
        layout->addWidget(table);
     
        gridGroupBox->setLayout(layout);
     
        this->ui->horizontalLayout->addWidget(gridGroupBox);
     
     }
    ...
    ...donc jusque là ça marche bien. Je vois bien ma liste de fichiers affichée dans mon layout->QTableView. Bon, OK mais maintenant, j'aimerai bien pouvoir récupérer les index de chaque ligne histoire de pouvoir m'amuser avec les fichiers c'est là que ça se corse... Si j'ai bien compris, ce qui gère les index c'est la classe QModelIndex, non?

    Par contre, ce que je pige pas trop c'est comment on l'implémente.... je sui preneur d'idées! merci par avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    En fait, le QDirModel, c'est un modele. De ta VUE, tu peux par exemple récupérer l'index de l'élément selectionné. A partir de cet index et grâce au MODELE, tu peux récupérer le nom de ce fichier. Puis grâce au QFileInfo, tu peux savoir tout sur ce fichier (si c'est un répertoire, fichier, taille, etc...)

    Bon courage !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 67
    Par défaut
    je ne sais pas si c'est ce que tu veux, mais une fois que tu as récupéré un QModelIndex, par exemple dans une méthode événementielle du style:
    void Table::on_table_clicked(QModelIndex Idx)

    tu appelles alors la méthode data() sur ce QModelIndex. Cette méthode te renvoie un QVariant, que tu peux (mais ce n'est qu'un exemple) convertir en QString.

    QString FileName = Idx.data().toString();

    Voila, ca devrait le faire

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    QString filePath ( const QModelIndex & index ) const

    Méthode de QDirModel.. Plus simplement.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 63
    Par défaut
    Nickel avec un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        QItemSelectionModel * selected = list->selectionModel();
        QModelIndexList idList = selected->selectedIndexes();
     
        QString selectedElements;
     
        for (int i = 0 ; i < idList.size() ; i++)
        {
            QVariant selectedElement = model->data(idList[i], Qt::DisplayRole);
            selectedElements += selectedElement.toString() + "<br />";
     
        }

    ...mais j'ai pas trop trouvé avec cettte méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString filePath ( const QModelIndex & index ) const


    pourtant ça me parait inétressant, a ver....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Il faut que tu gardes le pointeur vers ton QDirModel. Grâce à lui tu pourras utiliser cette méthode !

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

Discussions similaires

  1. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05
  2. [C / API32 ] Algorithme d'indexation des couleurs
    Par elf dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 03/08/2005, 03h31

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