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 :

Comment récupérer la clé (QListView, QTableView) ?


Sujet :

PyQt Python

  1. #1
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut Comment récupérer la clé (QListView, QTableView) ?
    Bonjour,
    Je débute en python et PyQt5
    Je suis complètement perdu entre les ListView, tableview, modele , QabstractTableModel....
    Je vous expose mon problème :
    J'ai une base de données (QSqlite) contenant la table "clients" (n°(index),nom,prenom,....)
    Je voudrais "simplement" afficher dans une ListView (ou tableview ou combo box) le nom,prenom de mes clients, puis en sélectant un de ces clients transmettre le n°(index) vers une fenêtre de saisie pour mise à jour du nom, prenom ...
    La listview ou la tableview ou la combobox doit afficher "nom" "prénom" ou nom+" "+prenom sans afficher le N°d'index(caché) qui lui doit être transmis à l'autre écran pour la mise à jour.
    J'ai choisi de travailler avec PyQt5 et je ne trouve pas d'exemple ou de tuto pouvant m'aider (il y des trucs en Qt4 mais ça marche pas avec PyQt5).
    Quelqu'un pourrait-il m'aider ou m'aiguiller vers une solution, un tuto sur les modeles (en français) ?

    merci.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  2. #2
    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,

    PyQt5 contient un dossier /examples/itemviews/ avec des modèles simple que tu pourras aisément adapter à ton besoin.

    Petite remarque, les shebang de ces codes devront peut-être être adaptés à Python 3 selon ton cas.

  3. #3
    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,

    Pour visualiser une table d'une base de données, on prend un QTableView.

    La notion de "modèle" est liée à l'architecture MVC (https://fr.wikipedia.org/wiki/Mod%C3...ontr%C3%B4leur). Le principe est simple: en gros, on sépare l'objet qui visualise (le QTableView) et l'objet qui fait le lien avec les données (QSqlRelationalTableModel). C'est le modèle qui connait la base de données, et le QTableView dit quel modèle il utilise (.setModel(...).

    La suggestion de VinsS est très bonne: regarde les exemples!
    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

  4. #4
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Merci à vous deux,
    Je crois que j'ai compris le principe MVC. Je bute surtout sur la mise en application avec toutes les classes de PyQt.
    Je vais regarder ces fameux exemples. J'espère bien y trouver mon bonheur.
    J'espère pouvoir mettre ce fil à Résolu d'ici quelque jours.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  5. #5
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Bon j'ai trouvé cette solution, en faisant
    je joins mon code sans prétention pour ne pas laisser le fil sans exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    qryModel=QtSql.QSqlQueryModel()
    qryModel.setQuery('select pkey, nom || " " || prenom from client')
    listClient=QtWidgets.QListView() # ou QTableView, ou ComboBox
    listClient.setModel(qryModel)
    listClient.setModelColumn(1) #pour cacher la clé primaire
    # récupération de la clé primaire sur l'index choisi         
    curIdx=listClient.currentIndex()
    primaryKey=qryModel.index(curIdx.row(),0).data(0)
    Par contre j'ai essayé le .setModel avec QTableWidget et QListWidget et ça me retourne que .setModel est une "private function" ?? Je chercherai un autre jour pourquoi

    Encore merci à tous
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 25/02/2015, 14h58
  2. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  3. Comment récupérer le raccourci Ctrl F4
    Par stef02032000 dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/05/2003, 15h53
  4. Comment récupérer le VK_TAB ?
    Par henderson dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/12/2002, 11h32
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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