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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| #-*-coding: Utf-8-*-
from tkinter import *
from tkinter.filedialog import *
import os
from os.path import * # pour récupèrer le nom des fichiers.
class Note():
"""classe pour créer notre GUI"""
def __init__(self):
self.win = Tk()
self.win.title("NoteBook") # titre de l'application
self.win.geometry("500x500") # taille de l'application
self.win.iconbitmap('icone.ico') # logo de l'application
# barre de menu
self.mainmenu = Menu(self.win)
# menu option
self.option = Menu(self.mainmenu)
self.option.add_command(label="nouveau", command=self.new_windows)
self.option.add_command(label="ouvrir", command=self.open)
# ajoute du menu à menubar.
self.mainmenu.add_cascade(label="option", menu=self.option)
# affichage du menu
self.win.config(menu=self.mainmenu)
def run(self):
"""boucle pour lancer la fenêtre."""
self.win.mainloop()
def new_windows(self):
"""commande nouvelle fenêtre"""
self.windows = Toplevel(self.win) # nouvelle fenêtre
self.windows.title("nouveau")
self.windows.geometry("500x500") # taille interface
self.windows.iconbitmap('icone.ico')
# affichage du menu
self.windows.config(menu=self.menubar)
# création d'un widget pour éditer du texte.
self.text = Text(self.windows,height=500, width=500)
self.text.bind('<Control-KeyPress-s>',self.save_as)
self.text.pack() # affichage du widget
def open(self):
fichier = askopenfile(filetypes=[("Text Files", "*.txt")]) # ouverture d'un fichier
txt = fichier.read() # on range le texte du fichier dans une variable.
titre = basename(fichier.name) # os.basename récupère le nom du fichier
# grâce à son attribut name qui donne le chemin.
# nouvelle fenêtre dans le widget parent.
self.windows = Toplevel(self.win)
self.windows.title(titre) # on utilise la variable titre.
self.windows.geometry("500x500") # taille interface
self.windows.iconbitmap('icone.ico') # logo de l'interface
# affichage du menu
self.windows.config(menu=self.menubar)
# création d'un widget pour éditer du texte.
self.text = Text(self.windows,height=500, width=500)
self.text.insert("1.0", txt) #affichage du texte du fichier.
self.text.bind('<Control-KeyPress-S>',self.new_text)
self.text.pack() # affichage du widgets
def save_as(self, event):
"""commande pour enregistrer-sous"""
self.text = self.text.get("1.0", END)
self.text.asksaveasfilename(filetype=[("*.txt")])
def menubar(self):
"""méthode créer une barre de menu."""
self.menubar = Menu(self.windows)
# menu option
self.option = Menu(self.menubar)
self.option.add_command(label="nouveau", command=self.new_windows)
self.option.add_command(label="ouvrir", command=self.open)
self.option.add_command(label="Enregistrer sous")
self.option.add_command(label="supprimer")
# ajout du menu option à menubar.
self.menubar.add_cascade(label="option", menu=self.option) |
Partager