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 :

QTableView : changement de selection [QtCore]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Par défaut QTableView : changement de selection
    Bonjour, je souhaite connecter le changement de sélection dans ma qtableview à un slot.

    J'ai trouvé ce post dans la rubrique qt:
    http://www.developpez.net/forums/d71...n/#post5463083

    mais je suis incapable de faire le pendant sous pyqt, voici un de mes essais infructueux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QtCore.QObject.connect(self.tableView.selectionModel(),  QtCore.SIGNAL("currentChanged(QtCore.QModelIndex,QtCore.QModelIndex)"), self,  QtCore.SLOT("self.on_currentChanged()"))
     
    def on_currentChanged(self):
        print 'changement dans la selection'
    Pourriez vous m'aider? Merci d'avance.

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Puis-je te recommander les connexions new style ?

    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    self.tableView.currentChanged.connect(self.on_currentChanged)
     
     
    def on_currentChanged(self, old, new):
        ...
    Je peux me tromper pour l'ordre, c'est peut-être new, old, à tester quoi.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Par défaut
    J'ai trouvé quelque chose qui fonctionne à partir de différents exemples non concluant du net.
    Il faut d'abord affecter un selectionModel à la tableView et à son tableModel pour que ça marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    self.baseSelectionModel = QtGui.QItemSelectionModel(self.tablemodel, self.tableView)
    self.tableView.setSelectionModel(self.baseSelectionModel)
    self.connect(self.baseSelectionModel, QtCore.SIGNAL("currentChanged(const QModelIndex &, const QModelIndex &)"), self.on_currentChanged)
    #ou alors dans le style indiqué par VInS
    #self.baseSelectionModel.currentChanged.connect(self.on_currentChanged)
     
    def on_currentChanged(self, select, deselect):
        print 'changement dans la selection'
    Note : connecter la tableView directement sans appliquer de selectionModel donne un message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AttributeError: 'builtin_function_or_method' object has no attribute 'connect'

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

Discussions similaires

  1. Calendar / Calendrier Changement mois selection automatique
    Par draco951 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 02/05/2013, 08h28
  2. Réponses: 2
    Dernier message: 17/12/2012, 17h46
  3. Changement valeur Select
    Par ririch dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2009, 15h12
  4. changement valeur select et interaction sur input
    Par Hisander dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/09/2007, 17h12
  5. changement de formulaire sur selection dans le select
    Par LeXo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/06/2006, 11h51

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