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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| import tkinter
import tkinter.filedialog as tkFileDialog
import tkinter.ttk as ttk
import tkinter.messagebox as tkMessageBox
import os
class Fichier_menu():
""" Gestion des actions du menu déroulant de fichier"""
def __init__(self,parent,onglet,fenetre):
""" Installation des sous-menus - Parent est la barre de menu principale et fenetre, la fenêtre associée"""
self.mp=parent
self.fe=fenetre
self.ong=onglet
self.menu_fichier=tkinter.Menu(self.mp)
self.mp.add_cascade(menu=self.menu_fichier,label = "Fichier", underline =0,foreground ='red')
self.menu_fichier.add_command(label="Nouveau Ctrl+N",
underline=0,font =('Comic Sans MS', 11),command=self.nouvelle_feuille)
self.menu_fichier.add_command(label="Fichiers Récents Ctrl+R",underline=9,font =('Comic Sans MS', 11))
self.menu_fichier.add_command(label="Ouvrir Ctrl+O",underline=0,font =('Comic Sans MS', 11),command=self.ouverture_fichier)
self.menu_fichier.add_command(label="Sauvegarder Ctrl+S",underline=0,font =('Comic Sans MS', 11))
self.menu_fichier.add_command(label="Enregistrer Sous Ctrl+Shift+S",underline=0,font =('Comic Sans MS', 11))
self.menu_fichier.add_separator()
self.menu_fichier.add_command(label="imPrimer Ctrl+P", underline =2,font =('Comic Sans MS', 11))
self.menu_fichier.add_command(label="Fermer Ctrl+W", underline =0,font =('Comic Sans MS', 11))
self.menu_fichier.add_command(label="Quitter Ctrl+Q", underline =0,command=self.fermer_tout,font =('Comic Sans MS', 11))
def nouvelle_feuille(self):
"""création d'un nouveau fichier"""
self.f1 = tkinter.Frame(self.ong,bg ='blue', bd =2)
self.s1 = tkinter.Scrollbar(self.f1, orient=tkinter.VERTICAL)
self.texte1 = tkinter.Text(self.f1, wrap=tkinter.WORD)
self.s1.config(command = self.texte1.yview)
self.texte1.config(yscrollcommand = self.s1.set)
self.texte1.grid(column=0, row=0)
self.s1.grid(column=1, row=0, sticky=tkinter.S+tkinter.N)
self.ong.add(self.f1,text ='nouveau')
def ouverture_fichier(self):
"""ouverture d'un fichier grâce à tkFileDialog"""
self.fd=tkFileDialog.askopenfilename(filetypes = [("Fichiers Tex","*.tex"),("Fichiers Python","*.py"),("Tous", "*")])
self.f=open(self.fd,"r")
self.texte_fichier=self.f.read()
self.f.close()
self.nom_fichier=os.path.basename(str(self.fd))
self.f1 = tkinter.Frame(self.ong,bg ='blue', bd =2)
self.s1 = tkinter.Scrollbar(self.f1, orient=tkinter.VERTICAL)
self.texte1 = tkinter.Text(self.f1, wrap=tkinter.WORD)
self.s1.config(command = self.texte1.yview)
self.texte1.config(yscrollcommand = self.s1.set)
self.texte1.grid(column=0, row=0)
self.s1.grid(column=1, row=0, sticky=tkinter.S+tkinter.N)
self.texte1.insert(tkinter.INSERT,self.texte_fichier)
self.ong.add(self.f1,text =self.nom_fichier)
self.ong.focus_set()
def fermer_tout(self):
"""Tout fermer"""
self.fe.destroy()
class Application():
def __init__(self):
self.root=tkinter.Tk()
self.root.title("Essai de menus déroulants")
self.onglet = ttk.Notebook(self.root)
self.onglet.pack(expand = tkinter.YES , fill = tkinter.X)
self.menu_principal = tkinter.Menu(self.root)
self.barre_fichier=Fichier_menu(self.menu_principal,self.onglet,self.root)
self.root.configure(menu = self.menu_principal)
self.root.wm_state(newstate="zoomed")
self.root.mainloop()
if __name__ == '__main__':
Application() |
Partager