Dépot Copyright

 CopyrightFrance.com

Cours Python

  1. Introduction à Python
  2. Ide Python
  3. Premier programme Python
  4. Les variables en Python
  5. Les commentaires en Python
  6. Les opérateurs Python
  7. Les fonctions en Python
  8. Structure If else... Python
  9. For While Python
  10. Formatage des chaines Python
  11. Les listes en Python
  12. Les tuples en Python
  13. Les dictionnaires en Python
  14. Les ensembles en Python
  15. POO et classes en Python
  16. Héritage en Python
  17. Les exceptions en Python
  18. Le gestionnaire des packages pip
  19. Télécharger le cours complet
  20. Les modules en Python
  21. Le module OS
  22. Module datetime Python
  23. Le module Platform
  24. Le module virtualenv
  25. Le Module PyInstaller
  26. Le module googletrans
  27. Les fichiers en Python
  28. Les fichiers ouverture & lecture
  29. Les fichiers ouverture & écriture
  30. Les fichiers CSV en Python
  31. Les Fichiers JSON En Python
  32. Fichier de configuration .ini
  33. Python & SQLite database
  34. DB Browser for SQLite
  35. Interface Graphique Tkinter
  36. Les Windgets Tkinter
  37. Bibliothèque d'images PILLOW
  38. Module de style tkinter.ttk
  39. Liste déroulante ttk Combobox
  40. le module filedialog
  41. Projet: Création éditeur de texte
  42. Bibliothèque graphique wxPython
  43. Bibliothèque graphique PyQt5
  44. Télécharger le cours complet
  45. Le module Math
  46. La bibliothèque matplotlib
  47. Le module Python statistics
  48. Bibliothèque Sympy
  49. Bibliothèques Numpy
  50. Bibliothèques Scipy
  51. Bibliothèques Pandas
  52. Bibliothèques Scikit Learn
  53. Bibliothèques TensorFlow
  54. Python Machine Learning
  55. Introduction à Django
  56. Installation de Django
  57. Premier Projet Django
  58. Interface administrateur
  59. Créer une application django
  60. Les modèles de django
  61. Templates Django
  62. Les formulaires Django
  63. Fichiers Statiques Django
  64. Upload des fichiers django
  65. Systeme Pagination Django
  66. Chaines de caractères
  67. Arithmétiques en Python
  68. Exercices Python: les classes
  69. Exercices sur les dictionnaires
  70. Exercices Python: les fichiers
  71. Tous les TP Python
  72. Création Editeur de Texte en Python Partie1
  73. Carnet d'adresse en Python
  74. Formation Python-partie1

Cours Java

Développement Web

  1. Introduction au langage HTML
  2. Structure d'un document HTML
  3. Mise en forme d’un document HTML
  4. Liens hypertexte
  5. Insertion d’images
  6. Les attributs de la balise BODY
  7. Les tableaux HTML
  8. Les listes HTML
  9. Les Frames HTML
  10. Les formulaires HTML
  11. Les caractères spéciaux HTML
  12. Ressources et références HTML
  13. Exercices HTML avec correction
  1. Introduction au langage CSS
  2. Propriétés d'un sélecteur
  3. La propriété Text CSS
  4. La propriété background CSS
  5. La propriété Font CSS
  6. La propriété border CSS
  7. Propriétés margin et padding
  8. Propriétés Height & Width
  9. Class et les ID CSS

Javascript Basique
  1. Introduction au langage Javascript
  2. Variables, fonctions et operateurs Javascript
  3. Les structures de contrôle et les boucles Javascript
  4. Les événements Javascript
  5. Le modèle Objet du Javascript
  6. L'objet array Javascript
Framework JQuery
  1. Introduction au Framework jQuery
  2. Premier pas avec le framework jQuery
  3. Les Sélecteurs jQuery
  1. Introduction au langage PHP
  2. Premier programme php
  3. Variables et Fonctions php
  4. Opérateurs arithmétiques et logiques
  5. Les structures de contrôle en php
  6. Les tableaux en php
  7. Control des formulaires en php
  8. Upload des fichiers en php
  9. Gestion des dossiers et des fichiers en php
  10. Colorisation syntaxique en php
  11. Cookies php
  12. Les variables globales php
  13. Sessions php
  14. Les variables php d’environnement
  15. Les classes et la poo php
  16. La librairie php_gd2 des images
  17. Lecture d’un fichier xml en php
  18. Les expressions régulières en php
  19. Moteurs de template php : smarty et fast temp…
  1. Langage MySql
  2. Introduction au langage MySql
  3. Installation du Serveur MySql
  4. Manipulation des bases de donnée MySql
  5. Manipulation desTables MySql
  6. Insértion de données MySql
  1. Installation Wordpress
  2. Modification du theme Wordpress
  3. Installation d'un plugin
  4. Gestion des catégories
  5. Gestion des articles
  6. Gestion des menus Wordpress
  7. Gestion des pages
  8. Gestion des Plugins
  9. Gestion des Widgets
  10. Gestion des Médias
  11. Gestion des commentaires
  12. Création formulaire de contact
  13. Outil Importation & exportation
  14. Gestion des extensions
  15. Réglage et paramètres
  1. Introduction à Joomla
  2. Installation Joomla
  3. Architecture de Joomla

Base de données

Math Pour Informatique

TICE & Multimédias

Utilisateurs en ligne

Users: 29 Guests, 3 Bots

Annonces Google

Python & Javascript pour les nuls !

Mini Python Project: Creating a text editor part1 Creating the system tree Before you start coding, you need to do a design of your system: 1. library: represents the directory of the system libraries (modules and classes). This directory contains an empty file called __init__.py that tells the Python interpreter that it is the directory of a module. 2. library.py: Represents the system library that will contain all the Python classes needed to run the system. 3. main.py: Represents the main file with which the system starts. This file contains very little code, usually the instances of the classes that are on the library library.  

1 -  Création de l’arborescence du système

Avant de commencer à coder, vous devez faire une conception de votre système. Nous vous proposons la suivante:




  1. library : représente le répertoire des librairies du système ( modules et classes). Ce répertoire contient un fichier vide nommé __init__.py qui indique à l'interpréteur de Python qu'il s'agit du répertoire d'un module.
  2. library.py : représente la bibliothèque du système qui va contenir toutes les classes Python nécessaire au fonctionnement du système.
  3. main.py : représente le fichier principal avec lequel démarre le système. Ce fichier ne contient que très peu de code, généralement les instances des classes qui se trouvent sur la bibliothèque library.py

2- Le code du fichier library.py

2.1 Importation de la bibliothèque tkinter

L'éditeur que nous souhaitons créer, manipule des objets graphique: fenêtres, boutons, labels, boite de dialogue...Pour cela nous devons importer une bibliothèque graphique. Nous utilisons la bibliothèque Tkinter pour ce projet:

from tkinter import * 
import os
savedFile = {1:""}

NB :

la troisième ligne nous permettra de stocker les objets files qui ne tiennent pas dans une instance de classe.

2.2-  Création de la classe principale du fichier library.py

from tkinter import *
import os
savedFile = {1:""}
class Win:     
    def __init__(self,master,content):
        # Fenêtre principale        
        self.master = master         
        # Main Text Widget
        self.content=content
    # Création de la fenêtre tkinter   
    def create(self):         
        self.master = Tk()         
        self.master.title("Editeur de Texte")         
        self.master.geometry("700x550")
    # Méthode qui ajoute la zone de texte                   
    def add_text(self):         
        self.content = Text(self.master)           
        self.content.pack(expand=1,fill='both')
    # Génération de la fenêtre principale             
    def generate(self):         
        self.master.mainloop()

2.3- Ajout des menus

Pour bien comprendre la méthode d'ajout des menus, veuillez réviser le tutoriel(page18) sur les menus. Nous passons directement au code qui permet d'ajouter  une méthode add_menu( ) qui permet de jouer l'affaire:




    def add_menu(self):         
        # 1 - Création de la barre des menus         
        menuBar = Menu(self.master)                  
        # 2 - Création du menu Fichier         
        menuFichier = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Fichier", menu=menuFichier)           
        # Création des sous menus du menu Fichier
        menuFichier.add_command(label="Nouveau", command=self.nouveau)          
        menuFichier.add_command(label="Ouvrir", command=self.fopen)         
        menuFichier.add_command(label="Enregistrer", command=self.save)         
        menuFichier.add_command(label="Enregistrer sous", command=self.saveAs)         
        menuFichier.add_command(label="Quitter", command = self.quitter)           
                          
        #3 - Création du Menu Edition         
        menuEdition= Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Edition ", menu=menuEdition)         
        menuEdition.add_command(label="Annuler")          
        menuEdition.add_command(label="Rétablir")                 
        menuEdition.add_command(label="Copier", command=self.copy)         
        menuEdition.add_command(label="Couper", command = self.cut)         
        menuEdition.add_command(label="Coller", command=self.past)                 
        #4 - Création du Menu Outils         
        menuOutils = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Outils", menu = menuOutils)         
        menuOutils.add_command(label="Préférences")                  
        # Création du Menu Aide         
        menuAide = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Aide", menu = menuAide)          
        menuAide.add_command(label="A propos")
		
		self.master.config(menu = menuBar)

2.4 - Ajout de commandes pour les  menus

Jusqu'à présent les menus crées ne sont pas fonctionnels, puisque nous leura avons pas encore crée des commandes ! Nous devons donc associer à  chaque menu une commande :

command = nom_de_la_commande

Nous devons ensuite créer une action pour chaque commande et qui porte le même nom :

def nom_de_la_commande():
        #code de l'action ici 

Code des actions des menus

#====================================== 
#  - Définition des actions des menus 
#====================================== 
#------------------------------ # 
 - actions du menu Fichier 
#-------------------------------     
   def quitter(self):         
       self.master.quit()     
   def nouveau(self):                  
       os.popen("python main.py")              
   def fopen(self):         
     file = self.master.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select File",filetypes = (("Text Files","*.txt"),("all files","*.*")))     
      fp = open(file,"r")         
      r = fp.read()         
      self.content.insert(1.0,r) 
      # Menu Enregistrer sous  
   def saveAs(self):         
      # create save dialog         
     fichier=self.master.filename=filedialog.asksaveasfilename(initialdir =  "/",title = "Enregistrer Sous\         ",filetypes = (("Fichier Texte","*.txt"),  ("Tous les fichiers","*.*")))         
     fichier = fichier + ".txt" 
     # Utilisation du dictionnaire pour stocker le fichier                
     savedFile[1] = fichier         
     f = open(fichier,"w")         
     s = self.content.get("1.0",END)         
     f.write(s)          
     f.close()
     # menu Enregistrer
   def save(self):         
       if(savedFile[1] ==""):             
          self.saveAs()                     
       else:             
           f = open(savedFile[1],"w")             
       s = self.content.get("1.0",END)             
       f.write(s)              
       f.close()  
      #------------------------------ 
      #  - actions du menu Edition 
      #------------------------------     
   def copy(self):         
       self.content.clipboard_clear()          
       self.content.clipboard_append(self.content.selection_get())          
       def past(self):         
       self.content.insert(INSERT, self.content.clipboard_get())         
   def cut(self):         
       self.copy()         
       self.content.delete("sel.first","sel.last")    

Remarque

Les actions associées aux menus doivent être placées avant les fonctions qui définissent les menus

2.5- Code final du fichier library.py (Code sur pastbin )

# -*- coding: utf-8 -*- 
#------------------------------ 
# Author        : Y. DERFOUFI
# Author Title  : Professeur Agrégé de mathématiques & Docteur en Math-Informatiques
# Compagny      : CRMEF OUJDA 
#-----------------------------
from tkinter import *
import os
savedFile = {1:""}

#====================================== 
# 1 - Classe de la fenêtre pricipale 
#====================================== 
class Win:     
    def __init__(self,master,content):
        # Fenêtre principale        
        self.master = master         
        # Main Text Widget
        self.content=content
    # Création de la fenêtre tkinter   
    def create(self):         
        self.master = Tk()         
        self.master.title("Editeur de Texte")         
        self.master.geometry("700x550")
    # Méthode qui ajoute la zone de texte                   
    def add_text(self):         
        self.content = Text(self.master)           
        self.content.pack(expand=1,fill='both')
    # Génération de la fenêtre principale             
    def generate(self):         
        self.master.mainloop()

    #====================================== 
    #  2 - Définition des actions des menus 
    #====================================== 
    #------------------------------
    # 2.1 - actions du menu Fichier 
    #-------------------------------     
    def quitter(self):         
        self.master.quit()     
    def nouveau(self):                  
        os.popen("python main.py")              
    def fopen(self):         
      file = self.master.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select File",filetypes = (("Text Files","*.txt"),("all files","*.*")))     
      fp = open(file,"r")         
      r = fp.read()         
      self.content.insert(1.0,r) 
      # Menu Enregistrer sous  
    def saveAs(self):         
       # create save dialog         
       fichier=self.master.filename=filedialog.asksaveasfilename(initialdir =  "/",title = "Enregistrer Sous\         ",filetypes = (("Fichier Texte","*.txt"),  ("Tous les fichiers","*.*")))         
       fichier = fichier + ".txt" 
       # Utilisation du dictionnaire pour stocker le fichier                
       savedFile[1] = fichier         
       f = open(fichier,"w")         
       s = self.content.get("1.0",END)         
       f.write(s)          
       f.close()
       # menu Enregistrer
    def save(self):         
        if(savedFile[1] ==""):             
           self.saveAs()                     
        else:             
            f = open(savedFile[1],"w")             
        s = self.content.get("1.0",END)             
        f.write(s)              
        f.close()  
    #------------------------------ 
    # 2.2 - actions du menu Edition 
    #------------------------------     
    def copy(self):         
        self.content.clipboard_clear()          
        self.content.clipboard_append(self.content.selection_get())          
        def past(self):         
        self.content.insert(INSERT, self.content.clipboard_get())         
    def cut(self):         
        self.copy()         
        self.content.delete("sel.first","sel.last")

    #====================================== 
    #  2 - Méthodes d'ajout des menus 
    #======================================
    def add_menu(self):         
        # 1 - Création de la barre des menus         
        menuBar = Menu(self.master)                  
        # 2 - Création du menu Fichier         
        menuFichier = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Fichier", menu=menuFichier)           
        # Création des sous menus du menu Fichier
        menuFichier.add_command(label="Nouveau", command=self.nouveau)          
        menuFichier.add_command(label="Ouvrir", command=self.fopen)         
        menuFichier.add_command(label="Enregistrer", command=self.save)         
        menuFichier.add_command(label="Enregistrer sous", command=self.saveAs)         
        menuFichier.add_command(label="Quitter", command = self.quitter)           
                          
        #3 - Création du Menu Edition         
        menuEdition= Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Edition ", menu=menuEdition)         
        menuEdition.add_command(label="Annuler")          
        menuEdition.add_command(label="Rétablir")                 
        menuEdition.add_command(label="Copier", command=self.copy)         
        menuEdition.add_command(label="Couper", command = self.cut)         
        menuEdition.add_command(label="Coller", command=self.past)                 
        #4 - Création du Menu Outils         
        menuOutils = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Outils", menu = menuOutils)         
        menuOutils.add_command(label="Préférences")                  
        # Création du Menu Aide         
        menuAide = Menu(menuBar,tearoff=0)         
        menuBar.add_cascade(label = "Aide", menu = menuAide)          
        menuAide.add_command(label="A propos")
		
		self.master.config(menu = menuBar)

3-  Code du fichier principal main.py (Code sur pastbin)

# -*- coding: utf-8 -*-
# Importation des bibliothèques nécessaires
from tkinter import * 
from tkinter import filedialog 

# Importation du module library.py
from library.library import*

# Création du dictionnaire qui stock les objets files
savedFile = {1:""} 

# Création d'une instance sur la classe principale
root = Win("root","c")

# Appel des méthodes qui créent l'objet fenêtre avec tous ces composants
root.create() 
root.add_text() 
root.add_menu() 
root.generate()

4 - Aperçu de l'éditeur

Si vous avez bien codé votre système et que tout va bien, voici l'aperçu de votre petit éditeur de texte :

 

Télécharger le projet





 

Younes Derfoufi
CRMEF OUJDA

 

2 réponses à Mini Projet Python : Création d’un éditeur de texte partie1

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload the CAPTCHA.

Livres Python