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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| import tkinter as tk
root = tk.Tk()
root.geometry("200x100")
bar_menu = tk.Menu(root)
root.config(menu=bar_menu)
feuil = True # Variable mémorisant le mode : Édition (feuil = False) ou Feuilletage (feuil = True)
# Fonctions activées par les menus
def bascul_mod(menu):
global feuil # Rendre la variable accessible
if feuil == True: # Selon le mode en cours, grise le menu correspondant
index_1 = 1
index_2 = 0
else:
index_1 = 0
index_2 = 1
menu.entryconfigure(index_1, state="disabled") # Fixer l'état du paramètre "state=" dans l'entrée choisie du menu
menu.entryconfigure(index_2, state="active")
feuil = not feuil # Basculer le booléen pour changer de mode
affich_mod() # Afficher le mode dans lequel on est
def affich_mod(): # Fonction pour afficher le mode en cours
global feuil
if feuil == True:
print('Mode "Feuilletage" activé')
else:
print('Mode "Édition" activé')
# Création du menu
def menu():
global feuil
global edition
# Menu "Fichier"
fichier = tk.Menu(bar_menu, tearoff=0) # Ne pas permettre au menu d'être décroché
fichier.add_command(label="Fermer", command=quit)
bar_menu.add_cascade(label="Fichier", menu=fichier)
# Menu "Edition"
edition = tk.Menu(bar_menu, tearoff=0)
edition.add_command(label="Mode feuilletage", command=lambda: bascul_mod(edition), state="disable") # ou "disabled"
edition.add_command(label="Mode édition", command=lambda: bascul_mod(edition), state="active")
print()
bar_menu.add_cascade(label="Édition", menu=edition)
affich_mod()
menu()
bout_basc = tk.Button(root, text="Changer de mode", command=lambda: bascul_mod(edition))
bout_basc.pack()
root.mainloop() |
Partager