Créer un bloc-notes avec Tkinter

| | | | | | | | | | | | |

Python 3 et Tkinter doivent déjà être installés sur votre système pour créer ce notebook. Vous pouvez télécharger le package Python approprié en fonction de la configuration système requise. Après avoir installé Python avec succès, vous devez installer Tkinter (un package GUI pour Python).

Utilisez cette commande pour installer Tkinter :

pip install python-tk 

Tkinter importe :


< tbody>

import tkinter

importer os

de tkinter import *


# Pour obtenir une place ci-dessus pour un message

de tkinter.messagebox import *


# Pour ouvrir la boîte de dialogue utilisée au besoin

de tkinter.filedialog importer *

Remarque. Message Box est utilisé pour écrire un message dans une boîte blanche nommée Notepad, et Dialog File est utilisé pour afficher / em> la boîte de dialogue lorsque vous ouvrez un fichier depuis n`importe où sur votre système ou enregistrez un fichier dans une position ou un emplacement spécifique.

Ajoutez un menu :

# Ajouter des contrôles (widget)


self .__ thisTextArea.grid (sticky = N + E + S + W)


# Ouvrir un nouveau fichier

self .__ thisFileMenu.add_command (label = "Nouveau" ,

commande = self .__ newFile)


# Pour ouvrir un fichier existant

self .__ thisFileMenu.add_command (label = " Ouvrir " ,

commande = soi .__ openFile)


# Enregistrer le fichier actuel

self .__ thisFileMenu.add_command (label = "Enregistrer" ,

commande = self .__ saveFile)


# Créer une ligne dans la boîte de dialogue

self .__ thisFileMenu.add_separator ()


# Pour arrêter

self .__ thisFileMenu.add_command (label = "Quitter" ,

commande = soi .__ quitApplication)

self .__ thisMenuBar.add_cascade ( label = " Fichier" ,

menu = self .__ thisFileMenu)


# Pour ajouter un trait

self .__ thisEditMenu.add_command (label = "Couper" ,

commande = self .__ cut)


# Pour donner une fonction de copie

self .__ thisEditMenu.add_command (label = "Copier" ,

commande = soi .__ copie )


# Pour ajouter une fonction d`insertion

self .__ thisEditMenu.add_command (label = "Coller" ,

commande = soi .__ paste)


# Pour activer l`édition

self .__ thisMenuBar.add_cascade (label = " Modifier " ,

menu = soi .__ thisEditMenu)


# Pour créer une fonction de description du bloc-notes

self .__ thisHelpMenu.add_command (label = " À propos du Bloc-notes " ,

commande = soi .__ showAbout )

self .__ thisMenuBar.add_cascade (label = "Aide" ,

menu = soi .__ thisHelpMenu)

< br>

soi .__ root.config (menu = self .__ thisMenuBar)


self .__ thisScrollBar.pack (côté = DROITE, remplir = Y)


# La barre de défilement sera ajustée automatiquement
# selon le contenu

self .__ thisScrollBar.config (command = soi .__ thisTextArea .yview)

self .__ thisTextArea.config (yscrollcommand = sélectionner f .__ thisScrollBar. définir )

Avec ce code, nous allons ajouter des menus à nos fenêtres de bloc-notes et ajouter des choses comme copier, coller, enregistrer, etc.

Ajouter des fonctionnalités :

def __ quitApplication ( soi ) :

soi .__ root.destroy ()

# exit ()


def __ showAbout ( self ) :

showinfo ( "Bloc-notes" , "Mrinal Verma" )

< br>

def __ openFile ( self ):


soi .__ fichier = askopenfilename (defaultextension = ". txt" ,

types de fichiers = [( "Tous les fichiers" , " *. * " ),

( "Documents texte" , "*. txt" )])

si self .__ fichier = = "":


# aucun fichier à ouvrir

soi .__ fichier = Aucun

sinon  :

# essayez d`ouvrir le fichier

# définissez le titre de la fenêtre

self .__ root.title (os.path. nom de base ( self .__ file) + " - Pas de bloc-notes " )

soi .__ thisTextArea.delete ( 1.0 , FIN)


fichier = ouvrir ( soi .__ fichier, "r" )


soi .__ thisTextArea.insert ( 1.0 , fichier . read ())


fichier . fermer ()

def __ nouveauFichier ( soi ) :

self .__ root.title ( " Sans titre - Bloc-notes " )

soi .__ fichier = Aucun

self .__ thisTextArea.delete ( 1.0 , END)


def __ saveFile ( self ) :


si soi .__ fichier = = Aucun  :

# enregistrer en tant que nouveau fichier

soi .__ fichier = asksaveasfilename (initialfile = ` Untitled.txt` ,

defaultextension = ". txt" ,

types de fichiers = [( "Tous les fichiers" , "*. *" ),

( = "string"> "Documents texte" , "*. txt" )])


si soi .__ fichier = = "":

soi .__ fichier = Aucun

else  :

# essayez d`enregistrer le fichier

file = open ( self .__ fichier, "w" )

f fichier . écrire ( soi .__ thisTextArea.get ( 1.0 , END))

fichier . close ()

# changer le titre de la fenêtre

self .__ root.title (os.path.basename ( self .__ file) + "- Bloc-notes" )



autre  :

fichier = ouvrir ( soi .__file, "w" )

fichier . écrire ( soi .__ thisTextArea.get ( 1.0 , END))

fichier . close ()


def __ cut ( soi ) :

soi .__ thisTextArea.event_generate ( """Couper""" )


def __ copie ( self ) :

self .__ thisTextArea.event_generate ( """Copier""" )


def __ paste ( self ) :

self .__ thisTextArea.event_generate ( """Coller""" )

Nous avons ajouté toutes les fonctionnalités requises dans le bloc-notes, vous pouvez également ajouter d`autres fonctionnalités telles que la taille de la police, la couleur de la police, le gras, le soulignement, etc.

Code principal après combinant tout :


import tkinter

importer os

depuis tkinter import *

de tkinter.messagebox importer *

de tkinter.filedialog importer *


classe Bloc-notes :

__ racine = Tk ()


# largeur et hauteur de fenêtre par défaut

__ thisWidth = 300

__ thisHeight = 300

__ thisTextArea = Texte (__root)

__ thisMenuBar = Menu (__ racine)

__ thisFileMenu = Menu (__ thisMenuBar, tearoff = 0 )

__ thisEditMenu = Menu (__ thisMenuBar, tearoff = 0 )

__ thisHelpMenu = Menu (__ thisMenuBar, tearoff = 0 )


# Ajouter une barre de défilement

__ thisScrollBar = Barre de défilement (__ thisTextArea)

__ fichier = Aucun


def __ init __ ( self , * * kwargs ):


# Définir l`icône

essayer  :

soi .__ racine .wm_iconbitmap ( "Notepad.ico" )

sauf  :

pass


# Définir la taille de la fenêtre (par défaut 300x300)


essayez  :

self .__ thisWidth = kwargs [ ` width` ]

sauf KeyError :

pass

< br>

essayez  :

soi .__ thisHeight = kwargs [ `height` ]

sauf KeyError :

pass


# Définir le texte de la fenêtre

self .__ root.title ( "Sans titre - Bloc-notes" )


# Centrer la fenêtre

screenWidth = self .__ racine. winfo_screenwidth ()

screenHeight = soi .__ racine .winfo_screenheight ()


# Pour la gauche

gauche = (screenWidth / 2 ) - ( soi .__ thisWidth / 2 )


# Allié à droite

haut = (screenHeight / 2 ) - ( soi . __thisHeight / 2 )

# Pour le haut et le bas

self .__ root.geometry ( `% dx% d +% d +% d` % ( soi .__ thisWidth,

self .__ thisHeight,

gauche, haut))

# Pour redimensionner automatiquement la zone de texte

/ code> passer


# Définir le texte de la fenêtre

self .__ root.title ( "Sans titre - Bloc-notes" )


# Fenêtre centrale

screenWidth = soi .__ root.winfo_screenwidth ()

screenHeight = self .__ root.winfo_screenheight ()


# Pour la gauche

left = (screenWidth / 2 )

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method