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 :

Comportement bizarre de QItemSelectionModel


Sujet :

PyQt Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Comportement bizarre de QItemSelectionModel
    Bonjour a tous

    Depuis 2 jours je coince sur ce probleme en apparence tout bete, mais la j'avoue que je cale...

    J'ai une QTableView, associee a un QSqlTableModel.
    Le modele est regle sur OnFieldChange, afin que mes modifications via la GUI soient propagees directement dans la base.

    La consequence de ce choix, c'est qu'a chaque modification que j'effectue via setData, le modele est raffraichi et je perds ma selection courante.

    J'ai donc essaye de sauver l'etat de selection avant l'ecriture, afin de le restaurer juste apres.

    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
     
       def refreshRow(self, task_id, t, val):
            record = self.model.record()
            ii = record.indexOf("id")  # on detecte la colonne "id"
            ids = set()  # on memorise les ids des taches selectionnees
            for index in self.select.selectedRows():
                ids.add(self.model.data(index))
     
            # la modif du champ elle-meme
            for i in xrange(self.model.rowCount()):
                index = self.model.index(i, ii)
                if self.model.data(index) == task_id:
                    j = record.indexOf(t)
                    index = self.model.index(i, j)
                    if t == "size":
                        val = int(val)
                    self.model.setData(index, val)
     
            # pour chaque ligne, on verifie si la task_id est parmi celles memorisees, et si oui on selectionne
            for i in xrange(self.model.rowCount()):
                index = self.model.index(i, ii)
                if self.model.data(index) in ids:
                    self.select.select(index, QtGui.QItemSelectionModel.SelectCurrent | QtGui.QItemSelectionModel.Rows)
    Si j'ai une seule ligne selectionnee lors de l'ecriture, elle est bien restauree.
    Si j'en ai plusieurs, une seule uniquement reste selectionnee a la fin.
    Mon probleme semble se situer au niveau de ma derniere ligne, mais j'ai beau lire la documentation, ca devrait marcher non ?
    Dernière modification par Jiyuu ; 03/12/2011 à 00h32. Motif: Ajout du nouveau tag

Discussions similaires

  1. Comportement bizarre de mes FPS
    Par Ekinoks dans le forum OpenGL
    Réponses: 7
    Dernier message: 22/08/2005, 15h14
  2. xsl:test .... avec comportement bizarre
    Par Blue LC dans le forum XMLRAD
    Réponses: 2
    Dernier message: 10/06/2005, 13h56
  3. [ACESS][MEMO][ISNULL]Comportement bizarre
    Par seb.49 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 10h44
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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