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

PyQt Python Discussion :

Récupérer la liste contenue dans un QTableView


Sujet :

PyQt Python

  1. #1
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut Récupérer la liste contenue dans un QTableView
    Bonjour,

    J'aimerais où me diriger pour itérer la liste affichée dans un qtableview.

    Je cherche dans la doc mais... force est de constater que je ne trouve pas...

    Un petit peu d'aide serait bienvenu

    Merci à tous et bonne semaine
    Alleï Bonjour chez vous!

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Sous quelle forme se trouvent les données affichées par le QTableView, et quel modèle utilises-tu?

    et: PyQt4 ou PyQt5?
    et: si PyQt4: Python 2 ou 3?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Alors oui, milles excuse, j'ai omis de le mentionner.

    Alors, je travaille avec PyQt5 et python3. Les données sont issues d'un QFileSystemModel.
    Alleï Bonjour chez vous!

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    QFileSystemModel ?

    Ce ne serait pas un QListView plutôt qu'un QTableView ?

  5. #5
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    hello,

    Non non, je confirme et donc récapitule .

    Sous PyQt5, j'ai un QTableView contenant des données issues d'un QFileSystemModel.
    J'aimerais donc pouvoir itérer le contenu de cette QTableView.

    Surement rien de bien compliqué, mais je ne vois pas ou se cache le conteneur de la liste affichée.

    Alleï Bonjour chez vous!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    Ce que je comprends de ta question c'est que tu souhaites récupérer le contenu de ton QTableView.
    J'ai peur de mal comprendre ton besoin car si c'est toi qui le renseigne, je pense que tu as déjà toutes les infos, je ne vois donc pas où ça coince.

    Cependant, sache que QTableView héritant de QAbstractItemView, tu peux toujours utiliser la fonction model() afin de récupérer le contenu de celui-ci.

    Hésite pas à donner plus d'infos si je suis complètement à coté de la plaque. Dans tous les cas ça servira aux autres pour t'apporter des réponses précises

    ++


    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  7. #7
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    tu es tout à fait sur la bonne plaque

    Le problème, n'est pas de récupérer le modèle, Mais de pouvoir itérer ce dernier.

    Bref, je ne trouve pas la méthode à appliquer pour passer en revue les élément retourné.

    c'est surement enfantin.... je dois être trop vieux donc ...
    Alleï Bonjour chez vous!

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par mayekeul Voir le message
    c'est surement enfantin....
    Oh, non!

    Voilà une solution pour récupérer les lignes et les colonnes affichées dans un QTableView qui traite les éléments du disque:

    Dans l'exemple, on appelle self.vuetable le QTableView, et il a comme modèle un QFileSystemModel.

    Dans l'initialisation, je lui ai demandé d'afficher le contenu de E:\Python34 avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.vuetable.setRootIndex(self.vuetable.model().setRootPath(r"E:\Python34"))
    Une fois le contenu de E:\Python34 affiché, voilà comment j'affiche la liste des répertoires et fichiers de la 1ère colonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    nblig = self.vuetable.model().rowCount(self.vuetable.rootIndex())
    nbcol = self.vuetable.model().columnCount(self.vuetable.rootIndex())
    print(nblig, nbcol)
    print()
     
    col = 0
    for row in range(0, nblig):
        index = self.vuetable.model().index(row, col, self.vuetable.rootIndex())
        print(self.vuetable.model().data(index))
    Ce qui me donne:

    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
    30 4
     
    @_sav
    DLLs
    Doc
    etc
    include
    Lib
    libs
    Scripts
    share
    tcl
    Tools
    cx_Freeze-wininst.log
    gmpy2-wininst.log
    LICENSE.txt
    matplotlib-wininst.log
    NEWS.txt
    numpy-wininst.log
    python
    python.exe
    pythonw.exe
    pywin32-wininst.log
    qt.conf
    README.txt
    Removecx_Freeze.exe
    Removegmpy2.exe
    Removematplotlib.exe
    Removenumpy.exe
    Removepywin32.exe
    Removescipy.exe
    scipy-wininst.log
    En variant col de 0 à nbcol, on a bien sûr toutes les colonnes de toutes les lignes.

    Ok?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  9. #9
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    un grand merci, c'est exactement ça que je ne voyais pas.
    j'aurais du y penser.

    mon approche était de ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    self.file_model = QFileSystemModel()
    Self.file_model.setRootPath(QDir.homePath())
    self.table_view.setMoel(self.file_model)
    #Mais je ne trouvais pas comment récupérer le rowCount
    nb_lignes = self.file_model.rowCount(????)
    #j'aurais du essayer comme ça
    nb_lignes = self.file_model.rowCount(self.table_view.rootIndex())
    #shame on me mais bravo on you :)
    donc un tout grand merci pour la solution, qui m'a bien aidé à y voir plus clair dans le cheminement à prendre
    Alleï Bonjour chez vous!

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

Discussions similaires

  1. [AC-2007] Récupérer le libellé contenu dans une liste déroulante
    Par Aphroditeuh dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/01/2011, 17h41
  2. modifier une liste contenue dans une liste
    Par harris_macken dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/03/2008, 16h52
  3. Récupérer les classes contenu dans un package
    Par guizzmo dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 10/07/2007, 12h08
  4. acceder à une liste contenue dans une liste
    Par CPI_en_mousse dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 12/06/2007, 08h33
  5. Réponses: 35
    Dernier message: 21/03/2007, 10h36

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