Mal sehen, wie man mit Tkinter einen einfachen Notizblock in Python erstellt. Diese Notizblock-GUI besteht aus verschiedenen Menüs wie Datei und Bearbeitung, 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 installiere python-tk

Tkinter importieren:

import tkinter  
import os  
from tkinter import *
  
from tkinter.messagebox import *
  
from tkinter.filedialog import *

Hinweis: messagebox wird verwendet , um die Nachricht in dem weißen Feld namens Notizblock und schrieb Dateidialog wird für das Dialogfeld verwendet , angezeigt , wenn Sie Datei von überall in Ihrem System oder Speicher von Dateien in einer bestimmten Position oder Ort öffnen.
 
Menü hinzufügen:



  
self.__thisTextArea.grid(sticky = N + E + S + W) 
  
self.__thisFileMenu.add_command(label = "New", 
                                command = self.__newFile) 
  
self.__thisFileMenu.add_command(label = "Open", 
                                command = self.__openFile) 
  
self.__thisFileMenu.add_command(label = "Save", 
                                command = self.__saveFile) 
  
self.__thisFileMenu.add_separator() 
  
self.__thisFileMenu.add_command(label = "Exit", 
                                command = self.__quitApplication) 
self.__thisMenuBar.add_cascade(label = "File", 
                               menu = self.__thisFileMenu) 
  
self.__thisEditMenu.add_command(label = "Cut", 
                                command = self.__cut) 
  
self.__thisEditMenu.add_command(label = "Copy", 
                                command = self.__copy) 
  
self.__thisEditMenu.add_command(label = "Paste", 
                                command = self.__paste) 
  
self.__thisMenuBar.add_cascade(label = "Edit", 
                               menu = self.__thisEditMenu) 
  
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) 
  
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 Dinge wie Kopieren, Einfügen, Speichern usw. hinzu.
 
Hinzufügen der Funktionalität:

def __quitApplication(self): 
    self.__root.destroy() 
    
  
def __showAbout(self): 
    showinfo("Notepad", "Mrinal Verma") 
  
def __openFile(self): 
          
    self.__file = askopenfilename(defaultextension=".txt", 
                                  filetypes=[("All Files","*.*"), 
                                      ("Text Documents","*.txt")]) 
  
    if self.__file == "": 
  
        
        self.__file = None
    else: 
        
        
        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: 
        
        self.__file = asksaveasfilename(initialfile='Untitled.txt', 
                                        defaultextension=".txt", 
                                        filetypes=[("All Files","*.*"), 
                                            ("Text Documents","*.txt")]) 
  
        if self.__file == "": 
            self.__file = None
        else: 
              
            
            file = open(self.__file,"w") 
            file.write(self.__thisTextArea.get(1.0,END)) 
            file.close() 
            
            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>>") 

Hier haben wir alle Funktionen hinzugefügt, die für den Editor erforderlich sind. Sie können auch andere Funktionen hinzufügen, z. B. Schriftgröße, Schriftfarbe, Fettdruck, Unterstrichen usw.

Hauptcode nach dem Zusammenführen aller:

import tkinter 
import os     
from tkinter import *
from tkinter.messagebox import *
from tkinter.filedialog import *
  
class Notepad: 
  
    __root = Tk() 
  
    
    __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) 
      
    
    __thisScrollBar = Scrollbar(__thisTextArea)      
    __file = None
  
    def __init__(self,**kwargs): 
  
        
        try: 
                self.__root.wm_iconbitmap("Notepad.ico"
        except: 
                pass
  
        
  
        try: 
            self.__thisWidth = kwargs['width'] 
        except KeyError: 
            pass
  
        try: 
            self.__thisHeight = kwargs['height'] 
        except KeyError: 
            pass
  
        
        self.__root.title("Untitled - Notepad") 
  
        
        screenWidth = self.__root.winfo_screenwidth() 
        screenHeight = self.__root.winfo_screenheight() 
      
        
        left = (screenWidth / 2) - (self.__thisWidth / 2
          
        
        top = (screenHeight / 2) - (self.__thisHeight /2
          
        
        self.__root.geometry('%dx%d+%d+%d' % (self.__thisWidth, 
                                              self.__thisHeight, 
                                              left, top))  
  
        
        self.__root.grid_rowconfigure(0, weight=1) 
        self.__root.grid_columnconfigure(0, weight=1) 
  
        
        self.__thisTextArea.grid(sticky = N + E + S + W) 
          
        
        self.__thisFileMenu.add_command(label="New", 
                                        command=self.__newFile)     
          
        
        self.__thisFileMenu.add_command(label="Open", 
                                        command=self.__openFile) 
          
        
        self.__thisFileMenu.add_command(label="Save", 
                                        command=self.__saveFile)     
  
        
        self.__thisFileMenu.add_separator()                                          
        self.__thisFileMenu.add_command(label="Exit", 
                                        command=self.__quitApplication) 
        self.__thisMenuBar.add_cascade(label="File", 
                                       menu=self.__thisFileMenu)      
          
        
        self.__thisEditMenu.add_command(label="Cut", 
                                        command=self.__cut)              
      
        
        self.__thisEditMenu.add_command(label="Copy", 
                                        command=self.__copy)          
          
        
        self.__thisEditMenu.add_command(label="Paste", 
                                        command=self.__paste)          
          
        
        self.__thisMenuBar.add_cascade(label="Edit", 
                                       menu=self.__thisEditMenu)      
          
        
        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)                     
          
        
        self.__thisScrollBar.config(command=self.__thisTextArea.yview)      
        self.__thisTextArea.config(yscrollcommand=self.__thisScrollBar.set) 
      
          
    def __quitApplication(self): 
        self.__root.destroy() 
        
  
    def __showAbout(self): 
        showinfo("Notepad","Mrinal Verma") 
  
    def __openFile(self): 
          
        self.__file = askopenfilename(defaultextension=".txt", 
                                      filetypes=[("All Files","*.*"), 
                                        ("Text Documents","*.txt")]) 
  
        if self.__file == "": 
              
            
            self.__file = None
        else: 
              
            
            
            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: 
            
            self.__file = asksaveasfilename(initialfile='Untitled.txt', 
                                            defaultextension=".txt", 
                                            filetypes=[("All Files","*.*"), 
                                                ("Text Documents","*.txt")]) 
  
            if self.__file == "": 
                self.__file = None
            else: 
                  
                
                file = open(self.__file,"w") 
                file.write(self.__thisTextArea.get(1.0,END)) 
                file.close() 
                  
                
                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): 
  
        
        self.__root.mainloop() 
  
  
  
  
notepad = Notepad(width=600,height=400) 
notepad.run() 

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

Python "Dateiname" .py 

und drücken Sie die Eingabetaste und es wird ausgeführt. Oder Sie können es direkt ausführen, indem Sie einfach auf Ihre .py- Erweiterungsdatei doppelklicken.

Ausgabe :