Comment fermer une fenêtre tkinter sans bouton?

Jonathan_2_7364 Messages postés 50 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

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. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Fermer une fenêtre Tkinter sans bouton:

    En cliquant la croix

    1
    1. Jonathan_2_7364 Messages postés 50 Statut Membre
       

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

      0
      1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Jonathan_2_7364 Messages postés 50 Statut Membre
         

        je plaisante ...

        0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

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

    0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    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")
    0
    1. rikoki
       

      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.

      0
    2. Jonathan_2_7364 Messages postés 50 Statut Membre
       

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

      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Jonathan_2_7364 Messages postés 50 Statut Membre
         

        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.

        0
      2. Jonathan_2_7364 Messages postés 50 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

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

        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Jonathan_2_7364 Messages postés 50 Statut Membre
         

        C'est normal de ne pas comprendre.  Si tu veux progresser et comprendre tkinter, je te suggère plutôt de lire ceci: http://tkinter.fdex.eu/doc/event.html

        0