Problème Tkinter coordonnées

Bonjour à tous,

Je suis un élève de seconde et je dois faire un programme tkinter que le professeur m'a donner en exercice mais je n'arrive pas à trouver sur internet ou sur les documents que j'ai à ma disposition la solution à mon problème.
J'ai introduit une image d'un clavier dans un canvas avec tkinter et ce que je voudrais faire est tout simplement de dire à mon programme que les coordonnées (x1,y1,x2,y2) sont égale à une touche du clavier.
Merci d'avance pour votre aide.

3 réponses

  1. tkinter va pas deviner pour toi quelles sont les coordonnées des touches dans ton image.

    Y a pas d'autre choix que de renseigner chaque coordonnées des touches sur ton image, c'est fastidieux et long à faire avec un logiciel graphique.

    Mais tu peux toujours t'amuser à faire un simple script qui demanderait un numéro de touche, et 2 clics pour déterminer les coordonnées de la touche sur l'image que tu enregistrerais au fur et à mesure.
    1. Oui je connais les coordonnées des touches sur l'image mais je ne connais pas la/les lignes de codes qui diront au programme que t'elle coordonnées sont égale à une touche de ce clavier (l’image).
    2. Enfaite j'aimerais tout simplement créé un fonction qui dira que les coordonnées x,y,x1,y1 sont égale à la touche du clavier 1. Pour pouvoir plus tard utiliser cette fonction pour par exemple demander à l’utilisateur d'entré sont code d'accès (il devra donc cliquer sur le clavier de l'image pour pouvoir entré les code 1234 par exemple.
    3. @Sterben13Si tu connais toutes les coordonnées des touches, bien c'est facile.

      Il faut d'abord enregistrer toutes tes coordonnées dans un itérable, en l’occurrence ici un dict serait adéquat, du genre :

      coords_touches = {'a':(x, y, x1, y1),
                        'b':(x, y, x1, y1,
                        # ainsi de suite
                        }


      Ainsi quand tu récupères la coordonnée x et y du clic souris, il reste plus qu'à parcourir le dict et déterminer si le x du clic est entre x et x1, et pareil pour le y.

      Ce qui donnerait grosso modo :

      for touche, coords in coords_touches.items():
          if coords[0] <= clicX <= coords[2] and coords[1] <= clicY <= coords[3]:
              touche_clavier = touche
              break
      else:
          touche_clavier = None


      touche_clavier contiendra donc la touche utilisée sur ton image ou None si pas trouvée.
  2. J'ai mise une image d'un clavier(avec des touches dessus) et je voudrais dire a mon programme que entre les coordonnées(x1,y1,x2,y2) il se trouve la touche 1(qui est enfaite sur mon clavier).