Problème : N'arrive pas à synchroniser un Button et une touche de clavier
Résolu/Fermé
cattabrini2
Messages postés
2
Date d'inscription
dimanche 22 mars 2020
Statut
Membre
Dernière intervention
23 mars 2020
-
22 mars 2020 à 11:38
cattabrini2 Messages postés 2 Date d'inscription dimanche 22 mars 2020 Statut Membre Dernière intervention 23 mars 2020 - 23 mars 2020 à 12:17
cattabrini2 Messages postés 2 Date d'inscription dimanche 22 mars 2020 Statut Membre Dernière intervention 23 mars 2020 - 23 mars 2020 à 12:17
3 réponses
Bonsoir Cattabrini2,
Je me demande si on peut lier une touche du clavier a la commande destroy
en effet, les callback fonctions liées a des touches reçoivent un argument :
def show_result(event):
……
e2.bind("<Return>", show_result)
et du coup, dans ce cas je pense qu'on passe aussi l'objet à détruire (ici: root), ce qui fait bien 2 arguments, et destroy n'en n' attend qu'un seul ...
Je me demande si on peut lier une touche du clavier a la commande destroy
en effet, les callback fonctions liées a des touches reçoivent un argument :
def show_result(event):
……
e2.bind("<Return>", show_result)
et du coup, dans ce cas je pense qu'on passe aussi l'objet à détruire (ici: root), ce qui fait bien 2 arguments, et destroy n'en n' attend qu'un seul ...
Bonjour Cattabrini2,
Bah, on peut appeler une fonction qui recevra 'event' , donc on s'affranchit déjà de cet argument, et on appelle destroy avec, qui ne reçoit donc que l'objet à détruire, j'ai testé ceci :
# -*- coding:Latin-1 -*-
from tkinter import *
def detruire_la_fenetre_principale(event):
fenetre_princ.destroy()
LARGEUR=400
HAUTEUR=100
fenetre_princ = Tk()
fenetre_princ.title('''Appuyer sur 'a' pour détruire la fenetre''')
fenetre_princ.geometry(str(LARGEUR)+'x'+str(HAUTEUR)+'+300+100')
btn1 = Button(fenetre_princ, text ="Détruire la fenetre", command = fenetre_princ.destroy)
btn1.pack(pady = 10)
fenetre_princ.bind('<a>', detruire_la_fenetre_principale)
#Pour utiliser n'importe quelle touche :
#fenetre_princ.bind('<Key>', detruire_la_fenetre_principale)
fenetre_princ.mainloop()
Bah, on peut appeler une fonction qui recevra 'event' , donc on s'affranchit déjà de cet argument, et on appelle destroy avec, qui ne reçoit donc que l'objet à détruire, j'ai testé ceci :
# -*- coding:Latin-1 -*-
from tkinter import *
def detruire_la_fenetre_principale(event):
fenetre_princ.destroy()
LARGEUR=400
HAUTEUR=100
fenetre_princ = Tk()
fenetre_princ.title('''Appuyer sur 'a' pour détruire la fenetre''')
fenetre_princ.geometry(str(LARGEUR)+'x'+str(HAUTEUR)+'+300+100')
btn1 = Button(fenetre_princ, text ="Détruire la fenetre", command = fenetre_princ.destroy)
btn1.pack(pady = 10)
fenetre_princ.bind('<a>', detruire_la_fenetre_principale)
#Pour utiliser n'importe quelle touche :
#fenetre_princ.bind('<Key>', detruire_la_fenetre_principale)
fenetre_princ.mainloop()
après avoir envoyé ma réponse, je vois que les indentation de mon script n'apparaissent pas , donc :
ne pas oublier de mettre 4 espaces dans la fonction devant
fenetre_princ.destroy()
:-)
ne pas oublier de mettre 4 espaces dans la fonction devant
fenetre_princ.destroy()
:-)
cattabrini2
Messages postés
2
Date d'inscription
dimanche 22 mars 2020
Statut
Membre
Dernière intervention
23 mars 2020
23 mars 2020 à 12:17
23 mars 2020 à 12:17
oui j'ai bu ca merci bcp ca marche merciiiii!!!
22 mars 2020 à 23:36