Comment fermer une fenêtre tkinter sans bouton?

Bonjour

J'aimerais savoir s'il était possible de fermer une fenêtre tkinter sans bouton. J'ai créer une image grâce à PhotoImage, et sur cette image il y a des boutons. Je détecte l'emplacement de la souris grâce au module mouse, voici mon code:

fenetre = Tk()
Positions = {'x':0, 'y':0}
Position = mouse.get_position()
if mouse.is_pressed():
   Position = mouse.get_position()
   Positions = {'x':Position[0], 
   'y'=Position[1]}
   if Positions.get('x') <= 902 and       
   Positions.get('y') <= 720:
       fenetre.destroy()
   

Mais ça ne fonctionne pas

Merci

3 réponses

  1. Bonjour,

    Fermer une fenêtre Tkinter sans bouton:

    En cliquant la croix

    1. Oui, mais la fenêtre est en plein écran, donc...

  2. Contributeur

    bonjour, peux-tu partager un code que nous puissions tester?  ton code contient plusieurs erreurs.

    1. Contributeur

      un exemple qui fonctionne:

      import tkinter
      import mouse
      import time
      fenetre = tkinter.Tk()
      fenetre.update()
      time.sleep(5)
      if mouse.is_pressed():
         print("is pressed")
      px,py = mouse.get_position()
      print(px,py)
      if px <= 902 and py <= 720:
         print("destroy")
         fenetre.destroy()
      time.sleep(5)
      print("fini")
      1. Bonsoir, complexe pour un truc qu'on fait avec un simple événement.

        import tkinter
        
        def quitter(evt):
            if evt.x < 50 and evt.y < 50:
                print(evt.x, evt.y)
                # fenetre.destroy()
        
        fenetre = tkinter.Tk()
        fenetre.bind('<Motion>', quitter)
        fenetre.mainloop()

        Commenter le print et décommenter le destroy pour fermer la fenêtre lors du survol du carré haut gauche de 50px.

        À Jonathan_2_7364 d'ajuster les coordonées de la fenêtre de son aplication.

      2. Peut tu expliquer le quitter(evt) car je ne comprend pas trop...

      3. Contributeur
        @Jonathan_2_7364

        Tu devrais plutôt d'abord t'intéresser au bind() en ligne 9.  Suite à cela, la fonction quitter() est appelée chaque fois que la souris est déplacée dans la fenêtre.

      4. @yg_be

        Désolé mais je suis débutant et je ne comprends rien a ce code. Pourrais tu me l'expliquer? en détail