Cours Python

 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. Le module Math
  45. La bibliothèque matplotlib
  46. Le module Python statistics
  47. Bibliothèque Sympy
  48. Bibliothèques Numpy
  49. Bibliothèques Scipy
  50. Bibliothèques Pandas
  51. Bibliothèques Scikit Learn
  52. Bibliothèques TensorFlow
  53. Python Machine Learning
  54. Introduction à Django
  55. Installation de Django
  56. Premier Projet Django
  57. Interface administrateur
  58. Créer une application django
  59. Les modèles de django
  60. Templates Django
  61. Les formulaires Django
  62. Fichiers Statiques Django
  63. Upload des fichiers django
  64. Systeme Pagination Django
  65. Authentification Utilisateurs Django
  66. Les bases en Python: Variables String
  67. Exercices sur les listes Python
  68. Arithmétiques en Python
  69. Exercices Python: les classes
  70. Exercices sur les dictionnaires
  71. Exercices Python: les fichiers
  72. Exercices GUI Tkinter
  73. Exercices Python & bases de données SQLite3
  74. Tous les TP Python
  75. Création Editeur de Texte en Python Partie1
  76. Mini Logiciel Conjugaison Des Verbes
  77. Système Traduction En Python
  78. Carnet d'adresse en Python
  79. Formation Python-partie1
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. Introduction au Framework PHP Laravel
  • Installation Laravel 8 & premier projet
    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
    Bases de données
    TICE & Multimédia
    Math Pour Informatiques
    UserOnline
    Utilisateurs/utilisatrices: 12 Guests, 3 Bots

    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

     

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

    1. anonymous dit :

      enfaite faut exécuter quoi le main ou le library

    Laisser un commentaire