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

wxPython Discussion :

Sélectionner un élément d'une wx.ListCtrl


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut Sélectionner un item d'une ListCtrl / Affichage d'une ListCtrl virtuelle
    Bonjour,

    Je voudrais pouvoir sélectionner un élément d'une wx.ListCtrl (pour simuler un choix utilisateur).
    En fait, je voudrais savoir comment faire la même chose que la fonction Select d'une wx.ListView...
    Je ne peux pas utiliser une wx.ListView, car j'ai créé une liste virtuelle, ce qu'on ne peut faire qu'avec wx.ListCtrl apparemment.

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut selectionner un item wx.ListCtrl
    Salut,

    Je n'ai jamais eu besoin de forcer la selection d'un item, mais en lisant la doc wxWidgets, j'ai trouvé ceci (à tester donc):

    1) recuperes ton item à partir de son index c'est à dire le n° de ligne de ton item
    item = self.GetItem(index)

    2) modifies les flags de ton item pour le selectionner
    item.m_state|=wx.LIST_STATE_SELECTED

    3) fixe ton item avec son nouvel etat
    self.SetItem(item)

    4) force l'affichage de l'item selectionné
    self.EnsureVisible(item)

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut selectionner un item dans un wx.ListCtrl
    Citation Envoyé par MorganStern
    Bonjour,

    Je voudrais pouvoir sélectionner un élément d'une wx.ListCtrl (pour simuler un choix utilisateur).
    En fait, je voudrais savoir comment faire la même chose que la fonction Select d'une wx.ListView...
    Je ne peux pas utiliser une wx.ListView, car j'ai créé une liste virtuelle, ce qu'on ne peut faire qu'avec wx.ListCtrl apparemment.

    Merci d'avance.
    Salut MorganStern,

    Je n'ai jamais eu besoin de forcer la selection d'un item, mais en lisant la doc wxWidgets, j'ai trouvé ceci (à tester donc):

    1) recuperes ton item à partir de son index c'est à dire le n° de ligne de ton item
    item = self.GetItem(index)

    2) modifies les flags de ton item pour le selectionner
    item.m_state|=wx.LIST_STATE_SELECTED

    3) fixe ton item avec son nouvel etat
    self.SetItem(item)

    4) force l'affichage de l'item selectionné
    self.EnsureVisible(item)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Bonjour,

    D'abord merci pour votre réponse.

    J'ai adapté votre solution à monde code, mais ça ne fonctionne malheureusement pas.

    Mon problème vient de la gestion de l'affichage d'une wx.ListCtrl virtuelle.
    Lorsqu'on modifie cette liste (ajout ou suppression d'un élément), on la met à jour avec self.SetItemCount([nombre d'éléments]).
    Le problème vient du fait que si je supprime un élément, la mise à jour par cette méthode ne fonctionne pas bien, c'est pourquoi je fais:
    self.SetItemCount(0) ## pour effacer la liste
    self.SetItemCount([nombre d'éléments]) ## et l'afficher à nouveau correctement.

    Seulement quand je fais self.SetItemCount(0), je perds ma sélection sur la liste, et il faut donc que j'arrive à la replacer, ou bien que je parvienne à mettre à jour l'affichage sans perdre ma sélection.

    Cordialement,

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut
    Je me demande si suite à la suppression de ton item il ne faudrait pas que tu forces un ré-affichage de ta frame....

    self.frame.Refresh(True)
    self.frame.Update()


  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Bravo! ça fonctionne!
    Merci beaucoup!

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

Discussions similaires

  1. [AC-2007] Sélectionner des éléments après une requète
    Par jisa64 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/04/2011, 10h43
  2. sélectionner un élément d'une matrice dans listbox
    Par jane40 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 29/04/2009, 20h05
  3. [C#] Empecher de sélectionner un élément dans une combobox
    Par padodanle51 dans le forum Windows Forms
    Réponses: 23
    Dernier message: 11/07/2006, 15h54
  4. Sélectionner un élément dans une liste multiple
    Par sourivore dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/03/2006, 11h47
  5. Pré-sélectionner un élément d'une combobox
    Par delphim dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/06/2003, 15h26

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