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 106 107 108 109 110 111 112 113 114 115
| # -*- coding: iso-8859-1 -*-
#------------------------------IMPORTATION--------------------#
import Tkinter
import tkFileDialog as Selector
from Tkinter import *
#------------------------------FONTION---------------------------#
def ouvrir(ev=None):
#Selection du fichier avec filtre .txt :
file2=Selector.askopenfilename(filetypes = [("Fichiers Texte","*.txt")])
fd=open(file2, 'r')
chaine=fd.read()
texte.insert(Tkinter.END,chaine)
fichier_courant = file2
recherche()
def sauvegarder(texte):
#Fenêtre de sauvegarde
fichier=Selector.asksaveasfilename(filetypes = [("Fichiers Texte","*.txt")])
fichier = str(fichier)
fichiereverse = ""#chaine inversee
for fichier2 in reversed(fichier):
fichiereverse += fichier2
extentionreverse = fichiereverse[:4]
extention=""
for extention2 in reversed(extentionreverse):
extention += extention2
if extention != ".txt":
fichier= fichier + ".txt"
fd2=open(fichier, 'w')
texte2=texte
fd2.write(texte2)
fd2.close()
def ascenseur():
scrollbar = Tkinter.Scrollbar(racine)
scrollbar.pack(side=Tkinter.RIGHT, fill=Tkinter.BOTH)
def quitter(ev=None):
racine.destroy()
def a_propos(ev=None):
propos=Tkinter.Toplevel()
propos.geometry("220x150")
propos.grab_set()
propos.focus_set()
#Mise en place du titre:
propos.title("A propos de Editim")
#Mise de l'icone en haut a gauche de la fenetre :
propos.iconbitmap("Editim.ico")
zoneTexte=Tkinter.Label(propos, text="Version du 4 avril 2009\n\nPar Timothe Pennec en Python 2.4\n\nLogiciel crée pour Windows XP\n\nderniere mise a jpour le 08/05/09\n")
zoneTexte.pack()
bouton = Tkinter.Button(propos, text="OK", command=propos.destroy).pack()
def recherche(ev=None):
# Recherche.
nmbChar = IntVar()
lastPos = "1.0"
# Nombre.
while 1 :
lastPos = texte.search( "\d+" , index = lastPos, stopindex = 'end', regexp = 1, count = nmbChar )
if lastPos == "" :
break
# Ajout d'un tag
texte.tag_add( 'number', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte.tag_configure( 'number', foreground = 'red')
#-----------------------------FENETRE-------------------------------#
racine=Tkinter.Tk()
fichier_courant = "nouveau fichier"
#Mise en place du titre:
racine.title("Editim v1.0")
#Mise de l'icone en haut a gauche de la fenetre :
racine.iconbitmap("Editim.ico")
#-----------------------------MENU---------------------------------#
#menu Fichier :
# Creation du systeme de menu (variable explicite sysdemenu):
sysdemenu = Tkinter.Menu(racine)
# Creation du menu Fichier :
Fichier = Tkinter.Menu(sysdemenu, tearoff=0)
#Partie Fichier :
sysdemenu.add_cascade(label="Fichier", menu=Fichier)
#Sous partie :
Fichier.add_command(label="Ouvrir Ctrl + o", command=ouvrir)
Fichier.add_separator()#Separateur (bar de separation grise)
Fichier.add_command(label="Sauvegarder Ctrl + s", command=lambda: sauvegarder(texte.get(0., Tkinter.END)))
Fichier.add_separator()#Separateur (bar de separation grise)
Fichier.add_command(label="Quitter Ctrl + q", command=quitter)
# Creation du menu ? :
intero = Tkinter.Menu(sysdemenu, tearoff=0)
#Partie Fichier :
sysdemenu.add_cascade(label="?", menu=intero)
#Sous partie :
intero.add_command(label="A propos de Editim F1", command=a_propos)
#-----------------------------Racourci clavier-----------------------#
Fichier.bind_all('<Control-o>', ouvrir) #Ctrl + o pour l'ancer l'ouverture du fichier
Fichier.bind_all('<Control-s>', sauvegarder)#Ctrl + s pour enregistrer
Fichier.bind_all('<Control-q>', quitter) #Ctrl + q pour quitter
intero.bind_all('<F1>', a_propos) #F1 l'ancer la fenêtre a_propos
#-----------------------------------------------------------------------#
#On met en place l'ascenseur :
ascenseur()
#Prevoit une place pour l'affichage des textes :
texte=Tkinter.Text(racine)
texte.pack(side=Tkinter.TOP, expand=True,fill=Tkinter.BOTH)
#on recherche pour colorer les nombre
racine.bind_all('<Key>', recherche)
#Insertion du menu
racine.config(menu=sysdemenu)
if __name__ == "__main__":
racine.mainloop() |
Partager