[progliste] Re: WxPython et touches du clavier
Hello Yannick et tous, Message d'un distrait... Tu parles de compatibilité cassée entre ForPython et la dernière version de 6Pad++. Perso, je suis (je crois) à l'avant-dernière version, alpha 10.1. Je n'ai pas encore réellement utilisé forPython, et en tout cas, je n'ai pas fait de nouveaux essais depuis... peut-être mars-avril. Quelle serait la version de ForPython qui irait bien avec la version de 6Pad++ alpha 10.1? Merci, J.-F. Le 18/05/2017 07:11, Yannick Youalé a écrit : Salut à tous, Tout le monde a apparemment oublié le module forPython pour 6pad++; Qui donnait la possibilité de: * taper le nom d'un objet, de mettre un point, et de faire ctrl+j pour avoir la liste des méthodes de l'objet en question; * ou de se placer sur un mot clé, et de faire ctrl+i pour que la pseudo console du 6pad++ s'ouvre pour afficher une description du mots clé en question. Mais bon, vu aussi que la compatibilité du forPython a été cassée avec l'arrivée de la dernière version du 6pad++, et que ses auteurs ont un peu la flème de le rerendre compatible, c'est un peu compréhensible. Cela dit je continue d'utiliser la version qui fonctionnait pour mes besoins personnels. PS: Maan, ton travail était une référence, et je m'en suis d'ailleurs inspiré pour travailler sur le forPython. Je l'ai toujours dans un coin de ma machine. Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 17/05/2017 à 22:15, Abdel a écrit : Coucou Maan, Je ne connaissais pas ce logiciel... Cependant, j'ai eu l'occasion d'utiliser la traduction de l'éditeur Edsharp que tu m'avais envoyé sur une autre liste. Je t'en remercie beaucoup d'ailleurs, car je m'en sert encore. Encore merci à toi pour ce travail, je vais le tester... Bien amicalement, Abdel. Le 17/05/2017 à 22:58, Maan ALOUN a écrit : salut JF, Abdel et tous le monde, je travaillais sur un petit logiciel explorateur de module pour python, je ne sais pas si vous l'avais l'occasion de le tester. vous le trouverez en pj. il se compose de 3 parties la première est une zone d'édition pour sélectionner un module parmi qui sont installés sur le système; la deuxième est une arborescence pour explorer le module choisis, il sufi de taper entré pour consulter l'aide sur l'élément en cour; la troisième est un petit éditeur de code je vous laisse tester. Merci -- De : "Jean-FrançoisColas" <jfco...@free.fr> Date : mardi 16 mai 2017 20:53 à : <progliste@ml.free.fr> Objet : [progliste] Re: WxPython et touches du clavier Hello Abdel, Thanks again. en complément de ton message, j'ai ressorti un des "tutos" que j'ai sur WxPython, dont le titre est : Programmer des interfaces graphiques avec le framework open source wxPython - Club d'entraide des développeurs francophones Je n'ai pas d'URL car je ne l'ai qu'en local. Il insiste, au moins au début, sur la manière d'exploiter la doc de WXWidgets en montrant comment les en-têtes de classes C++ se transposent en WxPython. C'est le premier tuto que j'avais récupéré. Pas forcément le plus facile, mais qui prend plutôt de" la valeur avec le temps. Bonne soirée, J.-F. Le 16/05/2017 18:50, Abdel a écrit : De rien JF, Pour connaitre les différentes méthodes et attributs des objets du module wx, je te propose ce qui suit : Comme du côté de chez NVDA, le module wx est intégré, il te suffit d'ouvrir la console Python de NVDA avec NVDA + Contrôle + Z. Ensuite, inutile d'importer le module wx, il est importé par défaut dans la console. Tape wx, suivi d'un point, puis réalise 2 tabulations. La liste complète des méthodes et attributs du module wx devrait s'afficher devant toi, tu pourras circuler à l'intérieur avec tes flèches verticales. Cette liste reconnait également lâauto complétion, c'est à dire que si tu écrit wx.WXK et que tu tabules 2 fois, tu auras toute la liste des constantes des touches intégrées dans le module. Si parmi toutes ces méthodes et attributs, il y en a une qui retient ton attention, valide sur entrée pour l'insérer, puis help(taLigne) pour consulter l'aide. Pour avoir les méthodes et attributs de la classe wx.Frame, tape simplement wx.Frame, suivi d'un point, puis 2 tabulations. Tu pourras le faire pour toute les classes du module wx ou n'importe quel autre module... Bien amicalement, Abdel. Le 15/05/2017 à 21:10, Jean-François Colas a écrit : Hello Abdel et tous, Merci pour cette page. Elle a répondu tout à fait à mon interrogation. Je n'ai pas encore appliqué sur mon code, mais le code du programme me laisse bon espoir. Après ça, faudra quand même que je me trouve du temps pour prendre en main la circulation dans la doc Wx, parce que les attributs des différents objets, ne s'inventent pas... Bonne soirée, J.-F. Le 14/05/2017 11:59, Abdel a écr
[progliste] Re: WxPython et touches du clavier
Salut à tous, Tout le monde a apparemment oublié le module forPython pour 6pad++; Qui donnait la possibilité de: * taper le nom d'un objet, de mettre un point, et de faire ctrl+j pour avoir la liste des méthodes de l'objet en question; * ou de se placer sur un mot clé, et de faire ctrl+i pour que la pseudo console du 6pad++ s'ouvre pour afficher une description du mots clé en question. Mais bon, vu aussi que la compatibilité du forPython a été cassée avec l'arrivée de la dernière version du 6pad++, et que ses auteurs ont un peu la flème de le rerendre compatible, c'est un peu compréhensible. Cela dit je continue d'utiliser la version qui fonctionnait pour mes besoins personnels. PS: Maan, ton travail était une référence, et je m'en suis d'ailleurs inspiré pour travailler sur le forPython. Je l'ai toujours dans un coin de ma machine. Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 17/05/2017 à 22:15, Abdel a écrit : Coucou Maan, Je ne connaissais pas ce logiciel... Cependant, j'ai eu l'occasion d'utiliser la traduction de l'éditeur Edsharp que tu m'avais envoyé sur une autre liste. Je t'en remercie beaucoup d'ailleurs, car je m'en sert encore. Encore merci à toi pour ce travail, je vais le tester... Bien amicalement, Abdel. Le 17/05/2017 à 22:58, Maan ALOUN a écrit : salut JF, Abdel et tous le monde, je travaillais sur un petit logiciel explorateur de module pour python, je ne sais pas si vous l'avais l'occasion de le tester. vous le trouverez en pj. il se compose de 3 parties la première est une zone d'édition pour sélectionner un module parmi qui sont installés sur le système; la deuxième est une arborescence pour explorer le module choisis, il sufi de taper entré pour consulter l'aide sur l'élément en cour; la troisième est un petit éditeur de code je vous laisse tester. Merci -- De : "Jean-FrançoisColas" <jfco...@free.fr> Date : mardi 16 mai 2017 20:53 à : <progliste@ml.free.fr> Objet : [progliste] Re: WxPython et touches du clavier Hello Abdel, Thanks again. en complément de ton message, j'ai ressorti un des "tutos" que j'ai sur WxPython, dont le titre est : Programmer des interfaces graphiques avec le framework open source wxPython - Club d'entraide des développeurs francophones Je n'ai pas d'URL car je ne l'ai qu'en local. Il insiste, au moins au début, sur la manière d'exploiter la doc de WXWidgets en montrant comment les en-têtes de classes C++ se transposent en WxPython. C'est le premier tuto que j'avais récupéré. Pas forcément le plus facile, mais qui prend plutôt de" la valeur avec le temps. Bonne soirée, J.-F. Le 16/05/2017 18:50, Abdel a écrit : De rien JF, Pour connaitre les différentes méthodes et attributs des objets du module wx, je te propose ce qui suit : Comme du côté de chez NVDA, le module wx est intégré, il te suffit d'ouvrir la console Python de NVDA avec NVDA + Contrôle + Z. Ensuite, inutile d'importer le module wx, il est importé par défaut dans la console. Tape wx, suivi d'un point, puis réalise 2 tabulations. La liste complète des méthodes et attributs du module wx devrait s'afficher devant toi, tu pourras circuler à l'intérieur avec tes flèches verticales. Cette liste reconnait également lâauto complétion, c'est à dire que si tu écrit wx.WXK et que tu tabules 2 fois, tu auras toute la liste des constantes des touches intégrées dans le module. Si parmi toutes ces méthodes et attributs, il y en a une qui retient ton attention, valide sur entrée pour l'insérer, puis help(taLigne) pour consulter l'aide. Pour avoir les méthodes et attributs de la classe wx.Frame, tape simplement wx.Frame, suivi d'un point, puis 2 tabulations. Tu pourras le faire pour toute les classes du module wx ou n'importe quel autre module... Bien amicalement, Abdel. Le 15/05/2017 à 21:10, Jean-François Colas a écrit : Hello Abdel et tous, Merci pour cette page. Elle a répondu tout à fait à mon interrogation. Je n'ai pas encore appliqué sur mon code, mais le code du programme me laisse bon espoir. Après ça, faudra quand même que je me trouve du temps pour prendre en main la circulation dans la doc Wx, parce que les attributs des différents objets, ne s'inventent pas... Bonne soirée, J.-F. Le 14/05/2017 11:59, Abdel a écrit : Coucou JF, Généralement, une wx.Frame est utilisée pour servir de conteneur, elle peut inclure une barre de menu, 1 ou plusieurs panels comportant à leurs tours différents Widget, etc. Le wx.Dialog est plus orienté dialogue comme son nom l'indique. Dans mon usage personnel, je n'utilise des wx.Dialog que si j'ai à faire à des commandes de formulaires, comme des case à cocher, des boutons, bouton-radios, etc... Je préfère di
[progliste] Re: WxPython et touches du clavier
Hello Abdel, Thanks again. en complément de ton message, j'ai ressorti un des "tutos" que j'ai sur WxPython, dont le titre est : Programmer des interfaces graphiques avec le framework open source wxPython - Club d'entraide des développeurs francophones Je n'ai pas d'URL car je ne l'ai qu'en local. Il insiste, au moins au début, sur la manière d'exploiter la doc de WXWidgets en montrant comment les en-têtes de classes C++ se transposent en WxPython. C'est le premier tuto que j'avais récupéré. Pas forcément le plus facile, mais qui prend plutôt de" la valeur avec le temps. Bonne soirée, J.-F. Le 16/05/2017 18:50, Abdel a écrit : De rien JF, Pour connaitre les différentes méthodes et attributs des objets du module wx, je te propose ce qui suit : Comme du côté de chez NVDA, le module wx est intégré, il te suffit d'ouvrir la console Python de NVDA avec NVDA + Contrôle + Z. Ensuite, inutile d'importer le module wx, il est importé par défaut dans la console. Tape wx, suivi d'un point, puis réalise 2 tabulations. La liste complète des méthodes et attributs du module wx devrait s'afficher devant toi, tu pourras circuler à l'intérieur avec tes flèches verticales. Cette liste reconnait également lâauto complétion, c'est à dire que si tu écrit wx.WXK et que tu tabules 2 fois, tu auras toute la liste des constantes des touches intégrées dans le module. Si parmi toutes ces méthodes et attributs, il y en a une qui retient ton attention, valide sur entrée pour l'insérer, puis help(taLigne) pour consulter l'aide. Pour avoir les méthodes et attributs de la classe wx.Frame, tape simplement wx.Frame, suivi d'un point, puis 2 tabulations. Tu pourras le faire pour toute les classes du module wx ou n'importe quel autre module... Bien amicalement, Abdel. Le 15/05/2017 à 21:10, Jean-François Colas a écrit : Hello Abdel et tous, Merci pour cette page. Elle a répondu tout à fait à mon interrogation. Je n'ai pas encore appliqué sur mon code, mais le code du programme me laisse bon espoir. Après ça, faudra quand même que je me trouve du temps pour prendre en main la circulation dans la doc Wx, parce que les attributs des différents objets, ne s'inventent pas... Bonne soirée, J.-F. Le 14/05/2017 11:59, Abdel a écrit : Coucou JF, Généralement, une wx.Frame est utilisée pour servir de conteneur, elle peut inclure une barre de menu, 1 ou plusieurs panels comportant à leurs tours différents Widget, etc. Le wx.Dialog est plus orienté dialogue comme son nom l'indique. Dans mon usage personnel, je n'utilise des wx.Dialog que si j'ai à faire à des commandes de formulaires, comme des case à cocher, des boutons, bouton-radios, etc... Je préfère disposer ces widgets dans une wx.Dialog plutôt qu'une wx.Frame... Sinon, pour la définition d'un handler unique pour tous tes boutons, bien sûr que c'est possible ! Voici une page qui décrit la chose, in English : https://www.blog.pythonlibrary.org/2011/09/20/wxpython-binding-multiple-widgets-to-the-same-handler/ En gros, ce sera : buttons = [self.button1, self.button2] for button in buttons: self.tonHandlerUnique(button) Je n'ai pas eu le temps de le mettre en pratique pour ton exemple, mais tu peux essayer si tu veux. Voila, merci à toi. Bien amicalement, *Abdel. Le 13/05/2017 à 18:10, Jean-François Colas a écrit : Hello Abdel, Cool, je n'imaginais pas qu'on puisse traiter un dialogue comme une frame: quelles peuvent être alors les avantages d'une frame du coup, en tout cas pour une utilisation courante? Est-ce que selon toi ou vous autres, il serait possible de rendre plus générale la méthode parcourir1 de sorte qu'elle puisse être associée à deux boutons différents, que je puisse savoir lequel a provoqué l'appel de cette procédure pour agir en conséquence? Vu que c'est quasi le même code à l'exception de quelques 2 à laplace de 1 lol? Bon je reverrai tout ça un peu plus en détail lorsque j'aurai du braille sous les doigts... Bonne soirée, J.-F. Le 12/05/2017 23:31, Abdel a écrit : Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de
[progliste] Re: WxPython et touches du clavier
De rien JF, Pour connaitre les différentes méthodes et attributs des objets du module wx, je te propose ce qui suit : Comme du côté de chez NVDA, le module wx est intégré, il te suffit d'ouvrir la console Python de NVDA avec NVDA + Contrôle + Z. Ensuite, inutile d'importer le module wx, il est importé par défaut dans la console. Tape wx, suivi d'un point, puis réalise 2 tabulations. La liste complète des méthodes et attributs du module wx devrait s'afficher devant toi, tu pourras circuler à l'intérieur avec tes flèches verticales. Cette liste reconnait également lâauto complétion, c'est à dire que si tu écrit wx.WXK et que tu tabules 2 fois, tu auras toute la liste des constantes des touches intégrées dans le module. Si parmi toutes ces méthodes et attributs, il y en a une qui retient ton attention, valide sur entrée pour l'insérer, puis help(taLigne) pour consulter l'aide. Pour avoir les méthodes et attributs de la classe wx.Frame, tape simplement wx.Frame, suivi d'un point, puis 2 tabulations. Tu pourras le faire pour toute les classes du module wx ou n'importe quel autre module... Bien amicalement, Abdel. Le 15/05/2017 à 21:10, Jean-François Colas a écrit : Hello Abdel et tous, Merci pour cette page. Elle a répondu tout à fait à mon interrogation. Je n'ai pas encore appliqué sur mon code, mais le code du programme me laisse bon espoir. Après ça, faudra quand même que je me trouve du temps pour prendre en main la circulation dans la doc Wx, parce que les attributs des différents objets, ne s'inventent pas... Bonne soirée, J.-F. Le 14/05/2017 11:59, Abdel a écrit : Coucou JF, Généralement, une wx.Frame est utilisée pour servir de conteneur, elle peut inclure une barre de menu, 1 ou plusieurs panels comportant à leurs tours différents Widget, etc. Le wx.Dialog est plus orienté dialogue comme son nom l'indique. Dans mon usage personnel, je n'utilise des wx.Dialog que si j'ai à faire à des commandes de formulaires, comme des case à cocher, des boutons, bouton-radios, etc... Je préfère disposer ces widgets dans une wx.Dialog plutôt qu'une wx.Frame... Sinon, pour la définition d'un handler unique pour tous tes boutons, bien sûr que c'est possible ! Voici une page qui décrit la chose, in English : https://www.blog.pythonlibrary.org/2011/09/20/wxpython-binding-multiple-widgets-to-the-same-handler/ En gros, ce sera : buttons = [self.button1, self.button2] for button in buttons: self.tonHandlerUnique(button) Je n'ai pas eu le temps de le mettre en pratique pour ton exemple, mais tu peux essayer si tu veux. Voila, merci à toi. Bien amicalement, *Abdel. Le 13/05/2017 à 18:10, Jean-François Colas a écrit : Hello Abdel, Cool, je n'imaginais pas qu'on puisse traiter un dialogue comme une frame: quelles peuvent être alors les avantages d'une frame du coup, en tout cas pour une utilisation courante? Est-ce que selon toi ou vous autres, il serait possible de rendre plus générale la méthode parcourir1 de sorte qu'elle puisse être associée à deux boutons différents, que je puisse savoir lequel a provoqué l'appel de cette procédure pour agir en conséquence? Vu que c'est quasi le même code à l'exception de quelques 2 à laplace de 1 lol? Bon je reverrai tout ça un peu plus en détail lorsque j'aurai du braille sous les doigts... Bonne soirée, J.-F. Le 12/05/2017 23:31, Abdel a écrit : Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de ligne en moins... Je te joins en PJ, ton code avec ta wx.Frame transformée en wx.Dialog, dis-moi ce que tu en penses. Ne rigole pas pour le nom de la classe principale, MonPtitDialog, lol ! Voila, merci pour ta passion pour le Python et le wxPython, je suis un passionné également. Bien amicalement, Abdel. Le 12/05/2017 à 21:20, Jean-François Colas a écrit : Hello tous, Oui, après tout, pourquoi pas vous faire part de mon petit amusement... Pas par sagesse, oh non lol. J'avais trois objectifs avec ce petit truc en PJ. L'un étant de construire une petite interface pour sélectionner deux fichiers, dont les noms à terme sont voués à être
[progliste] Re: WxPython et touches du clavier
Hello Abdel et tous, Merci pour cette page. Elle a répondu tout à fait à mon interrogation. Je n'ai pas encore appliqué sur mon code, mais le code du programme me laisse bon espoir. Après ça, faudra quand même que je me trouve du temps pour prendre en main la circulation dans la doc Wx, parce que les attributs des différents objets, ne s'inventent pas... Bonne soirée, J.-F. Le 14/05/2017 11:59, Abdel a écrit : Coucou JF, Généralement, une wx.Frame est utilisée pour servir de conteneur, elle peut inclure une barre de menu, 1 ou plusieurs panels comportant à leurs tours différents Widget, etc. Le wx.Dialog est plus orienté dialogue comme son nom l'indique. Dans mon usage personnel, je n'utilise des wx.Dialog que si j'ai à faire à des commandes de formulaires, comme des case à cocher, des boutons, bouton-radios, etc... Je préfère disposer ces widgets dans une wx.Dialog plutôt qu'une wx.Frame... Sinon, pour la définition d'un handler unique pour tous tes boutons, bien sûr que c'est possible ! Voici une page qui décrit la chose, in English : https://www.blog.pythonlibrary.org/2011/09/20/wxpython-binding-multiple-widgets-to-the-same-handler/ En gros, ce sera : buttons = [self.button1, self.button2] for button in buttons: self.tonHandlerUnique(button) Je n'ai pas eu le temps de le mettre en pratique pour ton exemple, mais tu peux essayer si tu veux. Voila, merci à toi. Bien amicalement, *Abdel. Le 13/05/2017 à 18:10, Jean-François Colas a écrit : Hello Abdel, Cool, je n'imaginais pas qu'on puisse traiter un dialogue comme une frame: quelles peuvent être alors les avantages d'une frame du coup, en tout cas pour une utilisation courante? Est-ce que selon toi ou vous autres, il serait possible de rendre plus générale la méthode parcourir1 de sorte qu'elle puisse être associée à deux boutons différents, que je puisse savoir lequel a provoqué l'appel de cette procédure pour agir en conséquence? Vu que c'est quasi le même code à l'exception de quelques 2 à laplace de 1 lol? Bon je reverrai tout ça un peu plus en détail lorsque j'aurai du braille sous les doigts... Bonne soirée, J.-F. Le 12/05/2017 23:31, Abdel a écrit : Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de ligne en moins... Je te joins en PJ, ton code avec ta wx.Frame transformée en wx.Dialog, dis-moi ce que tu en penses. Ne rigole pas pour le nom de la classe principale, MonPtitDialog, lol ! Voila, merci pour ta passion pour le Python et le wxPython, je suis un passionné également. Bien amicalement, Abdel. Le 12/05/2017 à 21:20, Jean-François Colas a écrit : Hello tous, Oui, après tout, pourquoi pas vous faire part de mon petit amusement... Pas par sagesse, oh non lol. J'avais trois objectifs avec ce petit truc en PJ. L'un étant de construire une petite interface pour sélectionner deux fichiers, dont les noms à terme sont voués à être envoyés à un comparateur en ligne de commande. Ceci à des fins d'entraînement, car j'ai déjà bricolé un truc comme ça en AutoHotKey. 2ème objectif: avoir un programme dans lequel je puisse suivre le cheminement de la démarche de construction d'un programme, et ceci en me basant sur le modèle d'un super petit article de SebSauvage, Construire une interface graphique pas à pas en Python avec Tkinter et wxPython. D'où les numéros de 1. à 8. qui parsèment mon code. 3... tester quelques classes, en fait j'ai deux trois différentes versions, celle-ci utilise un Panel, d'où le nom, je voulais trouver les conditions qui me permettent de pouvoir compter sur un parcours de tabulation. Pour le reste... Tel quel, mon voeu concernant Echap est à peu près exaucé, à part le fait que cet engin de script provoque un bip lorsque j'appuie sur Echap, c'est peut-être dû à la manière employée pour sortir du programme... Sinon, je serais assez d'accord pour n'avoir qu'une seule procédure pour parcourir, au lieu de parcourir1 et parcourir2, mais je ne sais comment déterminer alors le bouton qui aura provoqué l'arrivé dans cette méthode-là . Et dernière question: aurait-on pu mettre ces différents contrôles dans
[progliste] Re: WxPython et touches du clavier
Coucou JF, Généralement, une wx.Frame est utilisée pour servir de conteneur, elle peut inclure une barre de menu, 1 ou plusieurs panels comportant à leurs tours différents Widget, etc. Le wx.Dialog est plus orienté dialogue comme son nom l'indique. Dans mon usage personnel, je n'utilise des wx.Dialog que si j'ai à faire à des commandes de formulaires, comme des case à cocher, des boutons, bouton-radios, etc... Je préfère disposer ces widgets dans une wx.Dialog plutôt qu'une wx.Frame... Sinon, pour la définition d'un handler unique pour tous tes boutons, bien sûr que c'est possible ! Voici une page qui décrit la chose, in English : https://www.blog.pythonlibrary.org/2011/09/20/wxpython-binding-multiple-widgets-to-the-same-handler/ En gros, ce sera : buttons = [self.button1, self.button2] for button in buttons: self.tonHandlerUnique(button) Je n'ai pas eu le temps de le mettre en pratique pour ton exemple, mais tu peux essayer si tu veux. Voila, merci à toi. Bien amicalement, *Abdel. Le 13/05/2017 à 18:10, Jean-François Colas a écrit : Hello Abdel, Cool, je n'imaginais pas qu'on puisse traiter un dialogue comme une frame: quelles peuvent être alors les avantages d'une frame du coup, en tout cas pour une utilisation courante? Est-ce que selon toi ou vous autres, il serait possible de rendre plus générale la méthode parcourir1 de sorte qu'elle puisse être associée à deux boutons différents, que je puisse savoir lequel a provoqué l'appel de cette procédure pour agir en conséquence? Vu que c'est quasi le même code à l'exception de quelques 2 à la place de 1 lol? Bon je reverrai tout ça un peu plus en détail lorsque j'aurai du braille sous les doigts... Bonne soirée, J.-F. Le 12/05/2017 23:31, Abdel a écrit : Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de ligne en moins... Je te joins en PJ, ton code avec ta wx.Frame transformée en wx.Dialog, dis-moi ce que tu en penses. Ne rigole pas pour le nom de la classe principale, MonPtitDialog, lol ! Voila, merci pour ta passion pour le Python et le wxPython, je suis un passionné également. Bien amicalement, Abdel. Le 12/05/2017 à 21:20, Jean-François Colas a écrit : Hello tous, Oui, après tout, pourquoi pas vous faire part de mon petit amusement... Pas par sagesse, oh non lol. J'avais trois objectifs avec ce petit truc en PJ. L'un étant de construire une petite interface pour sélectionner deux fichiers, dont les noms à terme sont voués à être envoyés à un comparateur en ligne de commande. Ceci à des fins d'entraînement, car j'ai déjà bricolé un truc comme ça en AutoHotKey. 2ème objectif: avoir un programme dans lequel je puisse suivre le cheminement de la démarche de construction d'un programme, et ceci en me basant sur le modèle d'un super petit article de SebSauvage, Construire une interface graphique pas à pas en Python avec Tkinter et wxPython. D'où les numéros de 1. à 8. qui parsèment mon code. 3... tester quelques classes, en fait j'ai deux trois différentes versions, celle-ci utilise un Panel, d'où le nom, je voulais trouver les conditions qui me permettent de pouvoir compter sur un parcours de tabulation. Pour le reste... Tel quel, mon voeu concernant Echap est à peu près exaucé, à part le fait que cet engin de script provoque un bip lorsque j'appuie sur Echap, c'est peut-être dû à la manière employée pour sortir du programme... Sinon, je serais assez d'accord pour n'avoir qu'une seule procédure pour parcourir, au lieu de parcourir1 et parcourir2, mais je ne sais comment déterminer alors le bouton qui aura provoqué l'arrivé dans cette méthode-là . Et dernière question: aurait-on pu mettre ces différents contrôles dans une classe wx.Dialog? A priori, dans ce code, au stade où il en est, je comprends... à peu près tout je crois. A votre sagacité et à vos commentaires, tout ceci parfaitement optionnel bien sûr! Bonne soirée, J.-F. Le 12/05/2017 16:16, Abdel a écrit : 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
[progliste] Re: WxPython et touches du clavier
Hello Abdel, Cool, je n'imaginais pas qu'on puisse traiter un dialogue comme une frame: quelles peuvent être alors les avantages d'une frame du coup, en tout cas pour une utilisation courante? Est-ce que selon toi ou vous autres, il serait possible de rendre plus générale la méthode parcourir1 de sorte qu'elle puisse être associée à deux boutons différents, que je puisse savoir lequel a provoqué l'appel de cette procédure pour agir en conséquence? Vu que c'est quasi le même code à l'exception de quelques 2 à la place de 1 lol? Bon je reverrai tout ça un peu plus en détail lorsque j'aurai du braille sous les doigts... Bonne soirée, J.-F. Le 12/05/2017 23:31, Abdel a écrit : Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de ligne en moins... Je te joins en PJ, ton code avec ta wx.Frame transformée en wx.Dialog, dis-moi ce que tu en penses. Ne rigole pas pour le nom de la classe principale, MonPtitDialog, lol ! Voila, merci pour ta passion pour le Python et le wxPython, je suis un passionné également. Bien amicalement, Abdel. Le 12/05/2017 à 21:20, Jean-François Colas a écrit : Hello tous, Oui, après tout, pourquoi pas vous faire part de mon petit amusement... Pas par sagesse, oh non lol. J'avais trois objectifs avec ce petit truc en PJ. L'un étant de construire une petite interface pour sélectionner deux fichiers, dont les noms à terme sont voués à être envoyés à un comparateur en ligne de commande. Ceci à des fins d'entraînement, car j'ai déjà bricolé un truc comme ça en AutoHotKey. 2ème objectif: avoir un programme dans lequel je puisse suivre le cheminement de la démarche de construction d'un programme, et ceci en me basant sur le modèle d'un super petit article de SebSauvage, Construire une interface graphique pas à pas en Python avec Tkinter et wxPython. D'où les numéros de 1. à 8. qui parsèment mon code. 3... tester quelques classes, en fait j'ai deux trois différentes versions, celle-ci utilise un Panel, d'où le nom, je voulais trouver les conditions qui me permettent de pouvoir compter sur un parcours de tabulation. Pour le reste... Tel quel, mon voeu concernant Echap est à peu près exaucé, à part le fait que cet engin de script provoque un bip lorsque j'appuie sur Echap, c'est peut-être dû à la manière employée pour sortir du programme... Sinon, je serais assez d'accord pour n'avoir qu'une seule procédure pour parcourir, au lieu de parcourir1 et parcourir2, mais je ne sais comment déterminer alors le bouton qui aura provoqué l'arrivé dans cette méthode-là . Et dernière question: aurait-on pu mettre ces différents contrôles dans une classe wx.Dialog? A priori, dans ce code, au stade où il en est, je comprends... à peu près tout je crois. A votre sagacité et à vos commentaires, tout ceci parfaitement optionnel bien sûr! Bonne soirée, J.-F. Le 12/05/2017 16:16, Abdel a écrit : 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
[progliste] Re: WxPython et touches du clavier
Coucou JF, Tu as fait du beau boulot, et j'ai de bonnes nouvelles pour toi, en matière de simplification du code. Comme tu l'as bien compris, il est vrai que l'on ne peut avoir une navigation tabulaire dans une wxFrame, que si l'on insère nos widgets dans un panel, ou que l'on utilise le style wx.TAB_TRAVERSAL dans notre Frame. C'est vrai pour la wx.Frame, mais pas pour la wx.Dialog ! Dans une wx.Dialog, la navigation tabulaire est déja comprise par défaut. Donc, c'est un premier avantage. Second avantage pour la wx.Dialog, c'est qu'elle nous épargne le fait de devoir se casser la tête à associer des événements pour la touche escape, le fait de disposer d'un bouton annuler avec sa méthode appropriée suffit pour que la wx.Dialog associe la fermeture à la touche escape, où que l'on soit dans celle-ci. Donc, encore pas mal de ligne en moins... Je te joins en PJ, ton code avec ta wx.Frame transformée en wx.Dialog, dis-moi ce que tu en penses. Ne rigole pas pour le nom de la classe principale, MonPtitDialog, lol ! Voila, merci pour ta passion pour le Python et le wxPython, je suis un passionné également. Bien amicalement, Abdel. Le 12/05/2017 à 21:20, Jean-François Colas a écrit : Hello tous, Oui, après tout, pourquoi pas vous faire part de mon petit amusement... Pas par sagesse, oh non lol. J'avais trois objectifs avec ce petit truc en PJ. L'un étant de construire une petite interface pour sélectionner deux fichiers, dont les noms à terme sont voués à être envoyés à un comparateur en ligne de commande. Ceci à des fins d'entraînement, car j'ai déjà bricolé un truc comme ça en AutoHotKey. 2ème objectif: avoir un programme dans lequel je puisse suivre le cheminement de la démarche de construction d'un programme, et ceci en me basant sur le modèle d'un super petit article de SebSauvage, Construire une interface graphique pas à pas en Python avec Tkinter et wxPython. D'où les numéros de 1. à 8. qui parsèment mon code. 3... tester quelques classes, en fait j'ai deux trois différentes versions, celle-ci utilise un Panel, d'où le nom, je voulais trouver les conditions qui me permettent de pouvoir compter sur un parcours de tabulation. Pour le reste... Tel quel, mon voeu concernant Echap est à peu près exaucé, à part le fait que cet engin de script provoque un bip lorsque j'appuie sur Echap, c'est peut-être dû à la manière employée pour sortir du programme... Sinon, je serais assez d'accord pour n'avoir qu'une seule procédure pour parcourir, au lieu de parcourir1 et parcourir2, mais je ne sais comment déterminer alors le bouton qui aura provoqué l'arrivé dans cette méthode-là. Et dernière question: aurait-on pu mettre ces différents contrôles dans une classe wx.Dialog? A priori, dans ce code, au stade où il en est, je comprends... à peu près tout je crois. A votre sagacité et à vos commentaires, tout ceci parfaitement optionnel bien sûr! Bonne soirée, J.-F. Le 12/05/2017 16:16, Abdel a écrit : 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,
[progliste] Re: WxPython et touches du clavier
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,
[progliste] Re: WxPython et touches du clavier
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
[progliste] Re: WxPython et touches du clavier
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 : 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
[progliste] Re: WxPython et touches du clavier
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] Re: WxPython et touches du clavier
Hello Abdel et tous, Merci beaucoup, je crois qu'en l'occurrence, EVT_CHAR était la pièce qui me manquait hier. Bon, j'en suis pas à élaborer des projets précis, j'en suis à ma n-ième tentative d'approche des interfaces graphiques lol. Chaque fois je vais un petit peu plus loin, d'ici quarante ou cinquante ans, je pourrai enfin gribouiller un petit quelque chose... relol. Faut dire que, le temps, le temps... A+ 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] Re: WxPython et touches du clavier
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. 1. wx.EVT_KEY_DOWN, pour gérer l'appui sur les touches; 2. wx.EVT_KEY_UP, pour gérer le relachement des touches; 3. 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�.