Comment effacer une fenêtre secondaire par le clavier
Résolu/Fermé
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
-
Modifié le 2 févr. 2019 à 20:18
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 4 févr. 2019 à 00:10
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 4 févr. 2019 à 00:10
A voir également:
- Comment effacer une fenêtre secondaire par le clavier
- Comment taper / sur clavier - Guide
- Telecharger clavier arabe تنزيل لوحة المفاتيح العربية - Télécharger - Divers Web & Internet
- Raccourci clavier agrandir fenetre - Guide
- Comment changer le clavier qwerty en azerty - Guide
- Télécharger clavier arabe samsung - Télécharger - Bureautique
3 réponses
Bonjour.
La méthode destroy ne doit pas recevoir d'arguments, mais la méthode bind fournit à la fonction en paramètre un objet Event.
Ce qu'il faut donc faire est d'utiliser une fonction intermédiaire afin de ne pas fournir l'objet Event à la méthode destroy, les fonctions anonymes (lambda) servent couramment à cet usage.
La méthode destroy ne doit pas recevoir d'arguments, mais la méthode bind fournit à la fonction en paramètre un objet Event.
Ce qu'il faut donc faire est d'utiliser une fonction intermédiaire afin de ne pas fournir l'objet Event à la méthode destroy, les fonctions anonymes (lambda) servent couramment à cet usage.
import tkinter as tk def toplevel(master): tl = tk.Toplevel(master) tl.bind("<R>", lambda evt: tl.destroy()) root = tk.Tk() tk.Button(root, text="toplevel", command=lambda : toplevel(root)).pack() root.mainloop()
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
66
2 févr. 2019 à 20:11
2 févr. 2019 à 20:11
Bonsoir et merci, super ça marche très bien, juste un détail:
je clique sur le bouton pour accéder à la deuxième fenêtre, là quand j'enfonce la touche "R" la deuxième fenêtre, celle sur laquelle je suis, s'efface et laisse place à la première fenêtre, c'est exactement ce que je voulais. Mais si je fais plusieurs aller retour fenêtre 1 puis 2 puis "R" puis re-fenêtre 2 etc ... ça marche mais ensuite si je clique sur "quitter" je dois le faire plusieurs fois (je pense autant de fois que j'ai fait des aller-retour fenêtre 1 fenêtre 2) !!!
Ce qui gère ça c'est cette ligne: f01.bind('<Escape>', quit)
Est-ce qu'il y aurait moyen de tout fermer à la première pression de la touche "Escape" quel que soit le nombre d'aller et de retours ?
La commande qui gère l'appui sur la croix en haut à droite de la fenêtre ferait l'affaire car ça ferme tout en une seule fois, mais je ne la connais pas !!!
Encore merci pour votre aide.
je clique sur le bouton pour accéder à la deuxième fenêtre, là quand j'enfonce la touche "R" la deuxième fenêtre, celle sur laquelle je suis, s'efface et laisse place à la première fenêtre, c'est exactement ce que je voulais. Mais si je fais plusieurs aller retour fenêtre 1 puis 2 puis "R" puis re-fenêtre 2 etc ... ça marche mais ensuite si je clique sur "quitter" je dois le faire plusieurs fois (je pense autant de fois que j'ai fait des aller-retour fenêtre 1 fenêtre 2) !!!
Ce qui gère ça c'est cette ligne: f01.bind('<Escape>', quit)
Est-ce qu'il y aurait moyen de tout fermer à la première pression de la touche "Escape" quel que soit le nombre d'aller et de retours ?
La commande qui gère l'appui sur la croix en haut à droite de la fenêtre ferait l'affaire car ça ferme tout en une seule fois, mais je ne la connais pas !!!
Encore merci pour votre aide.
zatox
Messages postés
640
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
66
4 févr. 2019 à 00:10
4 févr. 2019 à 00:10
Bonsoir, ah oui tu as raison, super, j'ai enlevé
Je passe donc le sujet en résolu.
f01.mainloop()maintenant ça marche nickel chrome, merci beaucoup pour ton aide.
Je passe donc le sujet en résolu.