Problème : N'arrive pas à synchroniser un Button et une touche de clavier
Résolu
cattabrini2
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
cattabrini2 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
cattabrini2 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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 ...
cattabrini2
Ah mince ne connaissez pas un moyen de faire ça autrement alors ???? disons que vu que c'est pour un jeu nous trouvons ça plus pratique que les professeurs appui sur le clavier et non ne bouge pas la souris
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()