Sehen wir uns an, wie man mit Tkinter einen einfachen Notizblock in Python erstellt. Diese Notepad-GUI besteht aus verschiedenen Menüs wie Datei und Bearbeiten, mit denen alle Funktionen wie Speichern der Datei, Öffnen einer Datei, Bearbeiten, Ausschneiden und Einfügen ausgeführt werden können.

Zum Erstellen dieses Notizblocks sollten Python 3 und Tkinter bereits auf Ihrem System installiert sein. Sie können ein geeignetes Python-Paket gemäß den Systemanforderungen herunterladen . Nachdem Sie Python erfolgreich installiert haben, müssen Sie Tkinter (ein GUI-Paket von Python) installieren.

Verwenden Sie diesen Befehl, um Tkinter zu installieren: 

pip install python-tk

Tkinter importieren:

Python

import tkinter
import os
from tkinter import *
 
# To get the space above for message
from tkinter.messagebox import *
 
# To get the dialog box to open when required
from tkinter.filedialog import *

Hinweis: messagebox wird verwendet, um die Nachricht in das weiße Feld namens Notepad zu schreiben, und filedialog wird verwendet, damit das Dialogfeld erscheint, wenn Sie eine Datei von irgendwo in Ihrem System öffnen oder Ihre Datei an einer bestimmten Position oder einem bestimmten Ort speichern. 
  
Menü hinzufügen:

Python

# Add controls(widget)
 
self.__thisTextArea.grid(sticky = N + E + S + W)
 
# To open new file
self.__thisFileMenu.add_command(label = "New",
                                command = self.__newFile)
 
# To open a already existing file
self.__thisFileMenu.add_command(label = "Open",
                                command = self.__openFile)
 
# To save current file
self.__thisFileMenu.add_command(label = "Save",
                                command = self.__saveFile)
 
# To create a line in the dialog
self.__thisFileMenu.add_separator()
 
# To terminate
self.__thisFileMenu.add_command(label = "Exit",
                                command = self.__quitApplication)
self.__thisMenuBar.add_cascade(label = "File",
                               menu = self.__thisFileMenu)
 
# To give a feature of cut
self.__thisEditMenu.add_command(label = "Cut",
                                command = self.__cut)
 
# To give a feature of copy
self.__thisEditMenu.add_command(label = "Copy",
                                command = self.__copy)
 
# To give a feature of paste
self.__thisEditMenu.add_command(label = "Paste",
                                command = self.__paste)
 
# To give a feature of editing
self.__thisMenuBar.add_cascade(label = "Edit",
                               menu = self.__thisEditMenu)
 
# To create a feature of description of the notepad
self.__thisHelpMenu.add_command(label = "About Notepad",
                                command = self.__showAbout)
self.__thisMenuBar.add_cascade(label = "Help",
                               menu = self.__thisHelpMenu)
 
self.__root.config(menu = self.__thisMenuBar)
 
self.__thisScrollBar.pack(side = RIGHT, fill = Y)
 
# Scrollbar will adjust automatically
# according to the content
self.__thisScrollBar.config(command = self.__thisTextArea.yview)
self.__thisTextArea.config(yscrollcommand = self.__thisScrollBar.set)

Mit diesem Code fügen wir das Menü in den Fenstern unseres Notizblocks hinzu und fügen die Dinge wie Kopieren, Einfügen, Speichern usw. hinzu. 
  
Hinzufügen der Funktionalität:

Python

def __quitApplication(self):
    self.__root.destroy()
    # exit()
 
def __showAbout(self):
    showinfo("Notepad", "Mrinal Verma")
 
def __openFile(self):
         
    self.__file = askopenfilename(defaultextension=".txt",
                                  filetypes=[("All Files","*.*"),
                                      ("Text Documents","*.txt")])
 
    if self.__file == "":
 
        # no file to open
        self.__file = None
    else:
        # try to open the file
        # set the window title
        self.__root.title(os.path.basename(self.__file) + " - Notepad")
        self.__thisTextArea.delete(1.0,END)
 
        file = open(self.__file,"r")
 
        self.__thisTextArea.insert(1.0,file.read())
 
        file.close()
 
         
def __newFile(self):
    self.__root.title("Untitled - Notepad")
    self.__file = None
    self.__thisTextArea.delete(1.0,END)
 
def __saveFile(self):
 
    if self.__file == None:
        #save as new file
        self.__file = asksaveasfilename(initialfile='Untitled.txt',
                                        defaultextension=".txt",
                                        filetypes=[("All Files","*.*"),
                                            ("Text Documents","*.txt")])
 
        if self.__file == "":
            self.__file = None
        else:
             
            # try to save the file
            file = open(self.__file,"w")
            file.write(self.__thisTextArea.get(1.0,END))
            file.close()
            # change the window title
            self.__root.title(os.path.basename(self.__file) + " - Notepad")
                 
             
    else:
        file = open(self.__file,"w")
        file.write(self.__thisTextArea.get(1.0,END))
        file.close()
 
def __cut(self):
    self.__thisTextArea.event_generate("<<Cut>>")
 
def __copy(self):
    self.__thisTextArea.event_generate("<<Copy>>")
 
def __paste(self):
    self.__thisTextArea.event_generate("<<Paste>>")

Darin haben wir alle Funktionen hinzugefügt, die im Notizblock erforderlich sind. Sie können auch andere Funktionen hinzufügen, z. B. Schriftgröße, Schriftfarbe, Fettdruck, Unterstreichung usw. 

Hauptcode nach dem Zusammenführen aller:

Python

import tkinter
import os   
from tkinter import *
from tkinter.messagebox import *
from tkinter.filedialog import *
 
class Notepad:
 
    __root = Tk()
 
    # default window width and height
    __thisWidth = 300
    __thisHeight = 300
    __thisTextArea = Text(__root)
    __thisMenuBar = Menu(__root)
    __thisFileMenu = Menu(__thisMenuBar, tearoff=0)
    __thisEditMenu = Menu(__thisMenuBar, tearoff=0)
    __thisHelpMenu = Menu(__thisMenuBar, tearoff=0)
     
    # To add scrollbar
    __thisScrollBar = Scrollbar(__thisTextArea)    
    __file = None
 
    def __init__(self,**kwargs):
 
        # Set icon
        try:
                self.__root.wm_iconbitmap("Notepad.ico")
        except:
                pass
 
        # Set window size (the default is 300x300)
 
        try:
            self.__thisWidth = kwargs['width']
        except KeyError:
            pass
 
        try:
            self.__thisHeight = kwargs['height']
        except KeyError:
            pass
 
        # Set the window text
        self.__root.title("Untitled - Notepad")
 
        # Center the window
        screenWidth = self.__root.winfo_screenwidth()
        screenHeight = self.__root.winfo_screenheight()
     
        # For left-align
        left = (screenWidth / 2) - (self.__thisWidth / 2)
         
        # For right-align
        top = (screenHeight / 2) - (self.__thisHeight /2)
         
        # For top and bottom
        self.__root.geometry('%dx%d+%d+%d' % (self.__thisWidth,
                                              self.__thisHeight,
                                              left, top))
 
        # To make the textarea auto resizable
        self.__root.grid_rowconfigure(0, weight=1)
        self.__root.grid_columnconfigure(0, weight=1)
 
        # Add controls (widget)
        self.__thisTextArea.grid(sticky = N + E + S + W)
         
        # To open new file
        self.__thisFileMenu.add_command(label="New",
                                        command=self.__newFile)   
         
        # To open a already existing file
        self.__thisFileMenu.add_command(label="Open",
                                        command=self.__openFile)
         
        # To save current file
        self.__thisFileMenu.add_command(label="Save",
                                        command=self.__saveFile)   
 
        # To create a line in the dialog       
        self.__thisFileMenu.add_separator()                                        
        self.__thisFileMenu.add_command(label="Exit",
                                        command=self.__quitApplication)
        self.__thisMenuBar.add_cascade(label="File",
                                       menu=self.__thisFileMenu)    
         
        # To give a feature of cut
        self.__thisEditMenu.add_command(label="Cut",
                                        command=self.__cut)            
     
        # to give a feature of copy   
        self.__thisEditMenu.add_command(label="Copy",
                                        command=self.__copy)        
         
        # To give a feature of paste
        self.__thisEditMenu.add_command(label="Paste",
                                        command=self.__paste)        
         
        # To give a feature of editing
        self.__thisMenuBar.add_cascade(label="Edit",
                                       menu=self.__thisEditMenu)    
         
        # To create a feature of description of the notepad
        self.__thisHelpMenu.add_command(label="About Notepad",
                                        command=self.__showAbout)
        self.__thisMenuBar.add_cascade(label="Help",
                                       menu=self.__thisHelpMenu)
 
        self.__root.config(menu=self.__thisMenuBar)
 
        self.__thisScrollBar.pack(side=RIGHT,fill=Y)                   
         
        # Scrollbar will adjust automatically according to the content       
        self.__thisScrollBar.config(command=self.__thisTextArea.yview)    
        self.__thisTextArea.config(yscrollcommand=self.__thisScrollBar.set)
     
         
    def __quitApplication(self):
        self.__root.destroy()
        # exit()
 
    def __showAbout(self):
        showinfo("Notepad","Mrinal Verma")
 
    def __openFile(self):
         
        self.__file = askopenfilename(defaultextension=".txt",
                                      filetypes=[("All Files","*.*"),
                                        ("Text Documents","*.txt")])
 
        if self.__file == "":
             
            # no file to open
            self.__file = None
        else:
             
            # Try to open the file
            # set the window title
            self.__root.title(os.path.basename(self.__file) + " - Notepad")
            self.__thisTextArea.delete(1.0,END)
 
            file = open(self.__file,"r")
 
            self.__thisTextArea.insert(1.0,file.read())
 
            file.close()
 
         
    def __newFile(self):
        self.__root.title("Untitled - Notepad")
        self.__file = None
        self.__thisTextArea.delete(1.0,END)
 
    def __saveFile(self):
 
        if self.__file == None:
            # Save as new file
            self.__file = asksaveasfilename(initialfile='Untitled.txt',
                                            defaultextension=".txt",
                                            filetypes=[("All Files","*.*"),
                                                ("Text Documents","*.txt")])
 
            if self.__file == "":
                self.__file = None
            else:
                 
                # Try to save the file
                file = open(self.__file,"w")
                file.write(self.__thisTextArea.get(1.0,END))
                file.close()
                 
                # Change the window title
                self.__root.title(os.path.basename(self.__file) + " - Notepad")
                 
             
        else:
            file = open(self.__file,"w")
            file.write(self.__thisTextArea.get(1.0,END))
            file.close()
 
    def __cut(self):
        self.__thisTextArea.event_generate("<<Cut>>")
 
    def __copy(self):
        self.__thisTextArea.event_generate("<<Copy>>")
 
    def __paste(self):
        self.__thisTextArea.event_generate("<<Paste>>")
 
    def run(self):
 
        # Run main application
        self.__root.mainloop()
 
 
 
 
# Run main application
notepad = Notepad(width=600,height=400)
notepad.run()

Um diesen Code auszuführen, speichern Sie ihn mit der Erweiterung .py und öffnen Sie dann cmd (Eingabeaufforderung), wechseln Sie zum Speicherort der gespeicherten Datei und schreiben Sie dann Folgendes 

python "filename".py 

und drücken Sie die Eingabetaste und es wird ausgeführt. Oder kann direkt ausgeführt werden, indem Sie einfach auf Ihre .py -Erweiterungsdatei doppelklicken.