Bonjour à tous,
J'ai ci-dessous un bout de code qui permet l'ouverture d'une toplevel via un bouton.
Lorsque le Focus est perdu par la toplevel, cette dernière est détruite.
Mon problème est que lorsque j'appuie deux fois de suite sur le bouton, la toplevel se recréé automatiquement.
Est-il possible de fermer la toplevel lors du deuxième appui bouton.
Merci pour vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 def main(): def showtoplevel(): toplevel=Tk.Toplevel() toplevel.overrideredirect(1) toplevel.transient() toplevel.bind('<FocusOut>', lambda widget: closetoplevel(toplevel)) listbox=Tk.Listbox(toplevel) listbox.grid() listbox.focus() def closetoplevel(widget): widget.destroy() root=Tk.Tk() Tk.Entry(root).grid(row=0, column=0) Tk.Button(root, command=showtoplevel).grid(row=0, column=1) root.mainloop() if __name__ == '__main__': try: import Tkinter as Tk except: import tkinter as Tk main()
Partager