Entrée au clavier ou entrée au pavé numérique ?

Résolu
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - Modifié le 28 nov. 2023 à 13:44
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 30 nov. 2023 à 11:53

Bonjour,

J'ai développé une petite application Tkinter qui contient le code suivant:

e1 = Entry(f1, width=5, font=font_default)
e1.place(x=65, y=4 + offset_entry_y)
e1.bind("<Return>", calculation)

... qui permet de saisir un entier dans une entry box, puis de déclencher une action en appuyant sur la touche entrée.

Cela fonctionne, que l'on appuie sur la touche du clavier ou bien sur celle du pavé numérique.

Par contre, j'ai passé mon code à un ami qui possède un Mac, et ça ne fonctionne pas avec la touche du pavé numérique, mais uniquement avec celle du clavier.

Serait-ce un bug de son Mac en particulier, ou bien quelque chose lié à Python ?

Merci d'avance pour vos réponses
Windows / Edge 119.0.0.0

A voir également:

6 réponses

mamiemando Messages postés 33161 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 juin 2024 7 760
Modifié le 28 nov. 2023 à 13:53

Bonjour,

Je pense que c'est plus lié à l'implémentation de tkinter sous MacOS. Selon cette discussion, les événements claviers des pavés numériques ne sont correctement pris en charge que sous Linux. Voir aussi le gist correspondant. Au pire du pire, tu peux rattraper l'événement <KeyPress> (comme dans le gist) et faire un test sur le code de la touche.

Note aussi qu'il existe d'autres frameworks (GTK, Qt) qui se veulent portables d'un système d'exploitation, à l'autre. Peut-être qu'une solution serait d'opter pour une de ces solutions au lieu de tkinter.

Bonne chance

1
Diablo76 Messages postés 201 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 5 juin 2024 42
Modifié le 28 nov. 2023 à 15:27

Salut,

@mamiemando a raison, c'est bien tkinter, de plus même sous Windows on ne devrait pas pouvoir avoir le même bind pour la touche Enter du clavier et celle du pavé, car elles ont 2 keycodes différents, on devrait pouvoir avoir le choix.

Avec PyQt c'est :

# Keycode pour le clavier
Qt.Key_Return 

# Keycode pour le pavé
Qt.Key_Enter

Du coup avec le lien de @mamiemando, je supprimerais ton bind pour:

def keypress(event):
    if event.keycode in [1275068419, 603979789]:
        calculation()
#
#
#
el.bind("<KeyPress>", keypress)
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
28 nov. 2023 à 15:33

Bonjour à tous les deux,

Et merci pour vos réponses

Effectivement, je vais essayer l'évènement KeyPress

Et, bien entendu, Tkinter était une solution de facilité, étant livré à l'install

de Python, mais je devrais peut-être me mettre à Qt, pour une interface

moderne et des widgets plus avancés 

0
Diablo76 Messages postés 201 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 5 juin 2024 42
28 nov. 2023 à 16:14

Pour info, dans mon exemple ci-dessus les keycodes sont pour Mac

Par contre, sous Windows, ils n'ont pas les mêmes valeurs :-(

0
mamiemando Messages postés 33161 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 juin 2024 7 760 > Diablo76 Messages postés 201 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 5 juin 2024
28 nov. 2023 à 16:18

Note que le gist que je pointais dans #1 donne aussi les codes touches Windows dont tu pourrais avoir besoin.

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
28 nov. 2023 à 16:58

Merci encore !

(ou alors, il faut que je m'achète un Mac en plus de mon PC Windows :-)  :-) )

0
mamiemando Messages postés 33161 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 juin 2024 7 760
29 nov. 2023 à 15:59

Est-ce que ton problème est résolu ? Si oui, peux-tu le marquer comme tel (voir ici) ?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
29 nov. 2023 à 20:19

Bonjour Mamiemando,

Oui, j'y pensais, j'attendais simplement la réponse de mon ami qui a un Mac

Je lui ai envoyé un mail avec un zip contenant un bout de code pour tester

(on est éloignés géographiquement)

0
Diablo76 Messages postés 201 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 5 juin 2024 42
30 nov. 2023 à 07:13

Tu aurais pu poster ton bout de code ici :-)

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
30 nov. 2023 à 11:53

Bonjour Diablo,

Mais oui, quel ballot !

C'est vrai que tu avais déjà résolu mon problème de position

des widgets en fonction de Windows ou MacOS

0