Salut Abdel et tous,

Ah merci, effectivement la liste se comporte telle que je l'envisageais. Je vois un peu comment tu as procédé pour parvenir à cette fin, je retiens la piste. Je ne sais où il aurait fallu que je cherche pour trouver GetCount, j'ai cherché dans WxListBox mais sans succès, je n'ai pas approfondi à ce moment-là. Alors je suppose que cette méthode provient de l'une des classes parentes... Mais décidément, comme dit l'autre, c'est en lisant qu'on devient liseron, tout pareil c'est en programmatant qu'on devient programmateur lol.

Merci pour tes tuyaux toujours pratiques et clairs.

J.-F.


Le 06/12/2017 23:14, Abdel a écrit :
Coucou JF et tous,

Tu dis :

1. Quel moyen le système me fournirait-il pour connaître le nombre
d'éléments de cette liste à un instant donné? Je n'ai pas trouvé de
manière évidente en tout cas...


Hé bien tout simplement grâce à la méthode GetCount() de la classe
wx.ListBox.

Dans le cas de ton exemple, ça donnerait ce qui suit :

self.listbox.GetCount() au lieu de cette variable self.len que tu as
utilisée.

Tu dis :

2. Les déplacements dans la liste que je crée, ne "bouclent pas".

Pour ce que je voulais en faire, ça ne m'arrange pas forcément, parce
qu'il s'agit de choisir entre deux éléments, et peu importe que l'un
soit en position 1 et l'autre en position 2, c'est sur le contenu que
je dois choisir.

Existerait-il un paramètre qui régit le "bouclage"?


Malheureusement, le wxPython n'a pas prévu ce comportement pour les
wx.ListBox, même dans ces implémentations les plus récentes.

Il n'existe donc pas de style particulier, ni de méthode d'ailleurs
pouvant gérer cela.

Mais si tu as plus d'un tour dans ton sac, tu devrais pouvoir créer
toi-même une implémentation qui te permettrait de faire en sorte que
la navigation verticale parmi les items de ta wx.ListBox soit cyclique.

Tout simplement en utilisant les événements, l'événement wx.EVT_KEY_UP
peut par exemple très bien gérer ce type de comportement.

Je te rejoins ton code avec un événement wx.EVT_KEY_UP ainsi que
quelques commentaires pour le nombre total d'items de ta wx.ListBox.

Je t'en souhaite bonne réception et reste à ta dispo si besoin.

Bien amicalement,
Abdel.


Le 04/12/2017 à 21:41, Jean-François Colas a écrit :
Hello la ML,

J'essaie de jouer un peu avec les listes en WxPython. J'ai vu qu'il
existait un objet ListBox, sur lequel je me pose deux questions:

1. Quel moyen le système me fournirait-il pour connaître le nombre
d'éléments de cette liste à un instant donné? Je n'ai pas trouvé de
manière évidente en tout cas...

2. Les déplacements dans la liste que je crée, ne "bouclent pas".
Pour ce que je voulais en faire, ça ne m'arrange pas forcément, parce
qu'il s'agit de choisir entre deux éléments, et peu importe que l'un
soit en position 1 et l'autre en position 2, c'est sur le contenu que
je dois choisir. Existerait-il un paramètre qui régit le "bouclage"?

Pour illustrer un peu la question 1, je suis parti d'un exemple, tiré
d'une doc en anglais qui me plaît bien, dont le titre est grosso
modo: WXPython ZetCode tutorial... J'ai mis l'exemple en pJ.

J'ai voulu y ajouter la sélection automatique d'un élément selon
l'action effectuée; et du coup, pour gérer cette histoire de nombre
d'éléments, j'y ai inséré du code, les lignes en question sont
repérées par # jf. Est-ce que vraiment j'étais obligé de passer par
là pour garder trace du nombre d'éléments, sachant que Jaws est
capable, lui, de me l'indiquer?

Merci,
J.-F.






Progliste :
Pour se d�sinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je 
vous r�pondrez en priv�.
        
        

Répondre à