Coucou Yannick, JF et tous,

JF, pour mieux pouvoir te venir en aide, il serait peut-être plus sage de nous communiquer le code complet de ton essai, cela nous permettrait de mieux pouvoir mettre le doigt sur le point qui pose problème.

Est-ce que ta classe est une wx.Dialog, ou wx.Frame.

Si c'est une wx.Dialog, Yannick a parfaitement raison, la touche escape n'a pas besoin d'être assignée à un événement, puisqu'elle déclenche automatiquement la fermeture du dialogue.

Cependant, si ta classe est une wx.Frame, il faut associer un événement wx.EVT_KEY_DOWN à chacun de tes widgets.

Par exemple,sous la forme suivante :

for item in [self.button1, self.checkbox1, self.button2, ect.]:
    item.Bind(wx.EVT_KEY_DOWN, selfTaMethodeDeFermeture)


Dans ce cas de figure bien précis, puisque escape n'est pas une touche associée à la frappe d'un caractère, on n'utilise pas l'événement wx.EVT_CHAR, il ne faut garder cet événement wx.EVT_CHAR qu'à l'intérieur de ta ou tes wx.TextCtrl.

Voila, merci à toi.

Bien amicalement,
Abdel.


Le 12/05/2017 à 15:45, yannick a écrit :
salut JF, pour l'instant j'ai  2 proposition :

1 copié collé de mon petit cahier :(boite de dialogue )

remarque ^...
en utilisant la valeur wx.ID_CANCEL,on a:
1.inutil de  donner un nom au bouton annuler,
2. inutil de lui assigner un rôle, car son rôle lui sera assigner par défaut (fermeture de la fenêtre.

2.pour ajouter une touche de raccouci de mémoire tu peux utiliser

RegisterHotKey


Le 12/05/2017 à 15:31, jfco...@free.fr a écrit :
Hello Yannick et tous,

En fait, au départ, c'est bien à la fenêtre que j'ai voulu associer mes événements, mais je n'obtiens un quelconque résultat qu'à partir du moment où je l'associe par exemple à l'une des zones d'édition contenues dans ma fenêtre.

Si j'écris:

self.textEntry1.Bind(wx.EVT_CHAR, self.OnChar)

quand le focus est dans textEntry1, si je frappe du texte, ma fonction OnChar fait bien ce que je lui demande (en l'occurrence, pour l'instant, d'aficher un dialogue avec le code du caractère).

Si je tabule, il ne se passe plus rien lors de la frappe d'un carctère.

Si j'écris:

self.Bind(wx.EVT_CHAR, self.OnChar)

mon OnChar ne réagit plus jamais à la frappe d'un caractère,y compris dans textEntry1.

Question annexe: est-il possible d'attribuer un raccourci clavier à un bouton, autrement que par le "et comercial"? Toujours dans ma problématique de faire correspondre la touche Echap au bouton Annuler qui se trouve dans ma boîte de dialogue?

Merci,
J.-F.



Le 2017-05-11 16:16, yannick a écrit :
salut JF,il faudrait l'associer à la fenêtre ....

de m mémoire si il s'agit d'une boite de  dialogue, c'est automatique


Le 11/05/2017 à 16:08, jfco...@free.fr a écrit :
Re Abdel et tous,

Pour compléter un tout petit peu: par exemple, je vois dans la page de doc que tu m'indiques, que ces événements ne sont envoyés qu'à une zone ayant le focus. OK. Donc j'ai une appli avec différents contrôles, l'un d'entre eux ayant toujours le focus. Cela signifie-t-il que, si je souhaitais par exemple que, où que je sois, la touche Echap provoque la sortie de l'applicaiton, il me faille associer un événement par exemple EV_KEY_DOWN à chacun des sous-contrôles? Mais si mon appli avait 50 contrôles... J'espérais trouver un moyen un peu plus général pour implémenter ma petite touche Echap... Ou n'impote quelle autre touche qui pourrait être attribuée à une fonctionnalité la plus globale, sans pour autant correspondre à un élément de menu... Enfin bon, tout ça, c'est toujours dans une optique d'exploration...

J.-F.




Le 2017-05-11 00:26, Abdel a écrit :
Coucou JF,

En fait, le module wx est bien capable d'intercepter les touches du
clavier.

Au même titre que les événements liés aux clics sur les boutons
"WX.EVT_BUTTON", ainsi que ceux des autres widgets que l'on peut
créer avec wx, il existe des événements associés à l'interception
des touches du clavier.

     * wx.EVT_KEY_DOWN, pour gérer l'appui sur les touches;
     * wx.EVT_KEY_UP, pour gérer le relachement des touches;
* wx.EVT_CHAR, pour gérer l'appui sur les touches associées à des
lettres.

Ces événements sont très bien documentés ici :

https://wxpython.org/docs/api/wx.KeyEvent-class.html

Il existe un module complémentaire pour NVDA qui montre bien comment
utiliser l'événement wx.EVT_KEY_DOWN, je t'invite à consulter son
code, voici sa page de description :

https://addons.nvda-project.org/addons/virtualRevision.en.html

Dans la méthode de ta classe servant à intercepter la touche
pressée, ce sera le second paramètre, "evt", ou "event", qui
s'occupera de gérer l'événement de cette dite touche :

key = evt.GetKeyCode()

Le retour de la méthode GetKeyCode () devra être comparé à des
constantes figurant dans le module wx, toutes commançant par
wx.WXK_....

Par exemple, pour la touche échappe, c'est wx.WXK_ESCAPE, pour F1
wx.WXK_F1, etc...

Voila, j'espère que ça t'aidera un petit peu.

J'ai fais une petite erreur dans ma réponse à David, le code HTML de
la liste des items de Wamp Server a été postée comme tel, milles
excuses...

Bien amicalement,
Abdel.
 Le 10/05/2017 à 16:53, jfco...@free.fr a écrit :

Hello la ML,

Est-ce qu'il vous paraît possible, avec WxPython, d'associer des
actions à des touches du clavier, par exemple F1, ou Ctrl+K, ou
même Echap? Je n'ai rien vu de tel dans les quelques exemples de
sources WX que j'ai, mais j'ai forcément fait des recherches un peu
ciblées et j'ai pu passerà côté...

Par ailleurs, ou peut-être même en conjonction, j'aimerais par
exemple que l'appui sur Echap me permette de sortir d'un script
WxPython... ça ne me paraît pas évident.

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�.
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�.




Progliste :
Pour se d�sinscrire de la liste : m
ilto: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�.
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�.




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�.




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 à