Hacer Bloc de notas usando Tkinter

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

Python 3 y Tkinter ya deben estar instalados en su sistema para crear este cuaderno. Puede descargar el paquete de Python adecuado según los requisitos de su sistema. Una vez que haya instalado Python correctamente, debe instalar Tkinter (un paquete GUI para Python).

Use este comando para instalar Tkinter:

pip install python-tk 

Importaciones de Tkinter:


< tbody>

Con este código agregaremos menús a las ventanas de nuestro bloc de notas y agregaremos cosas como copiar, pegar, guardar, etc.

Agregar funcionalidad:

def __ quitApplication ( self ):

self .__ root.destroy()

# exit()


def __ mostrarAcerca de ( self < /código> ):

showinfo ( "Bloc de notas" < /código> , "Mrinal Verma" )

< br>

def __ openFile ( self ):


self .__ file = askopenfilename (extensión predeterminada = ". txt" ,

tipos de archivo = [( "Todos los archivos" , " *.* " ),

( "Documentos de texto" , "*. txt" )])

if self .__ file = = < /código> "":


# ningún archivo para abrir

self .__ archivo = Ninguno

else :

# intente abrir el archivo

# configure el título de la ventana

self .__ root.title (os.path. nombre base ( self .__ file) + " - No tepad " )

self .__ thisTextArea.delete ( 1.0 , FIN)


archivo = abrir ( self .__ archivo, "r" )


self < clase de código = "simple"> .__ thisTextArea.insert ( 1.0 , archivo . read ())


archivo . cerrar ()

def __ newFile ( self ):

self .__ root.title ( " Sin título - Bloc de notas " )

self .__ archivo < clase de código = "palabra clave"> = Ninguno

self .__ thisTextArea.delete ( 1.0 , END)


def __ saveFile ( self ):


if self .__ archivo = = Ninguno :

# guardar como archivo nuevo

self .__ archivo = pide guardar como nombre de archivo (archivo inicial = ’ Sin título.txt’ , < /código>

extensión predeterminada = ". txt" ,

tipos de archivo = < /código> [( "Todos los archivos" , "*. *" ),

( "Documentos de texto" , "*. txt" )])


if self .__ file = = "":

self .__ archivo = Ninguno

else :

# intenta guardar el archivo

file = < clase de código = "funciones" > abrir ( self .__ archivo, "w" )

f archivo . write ( self .__ thisTextArea.get ( 1.0 , FIN))

archivo . close ()

# cambiar el título de la ventana

self .__ root.title (os.ruta.nombrebase ( self .__ file) < clase de código = "palabra clave"> + "- Bloc de notas" )



más :

archivo = abrir ( self .__file, "w" )

archivo . write ( self .__ thisTextArea.get ( 1.0 , FIN))

archivo . close ()


def __ cut ( self ):

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


def __ copy ( self ):

self < clase de código = "simple"> .__ thisTextArea.event_generate ( """Copiar""" )


def __ paste ( self ):

self .__ thisTextArea.event_generate ( ""< Pegar >"" )

import tkinter

< clase de código = "palabra clave"> importar os

de tkinter import *


# Para obtener un lugar arriba para una publicación

from tkinter.messagebox import *


# Para abrir el diálogo utilizado según sea necesario

de tkinter.filedialog import *

Nota. Cuadro de mensaje se usa para escribir un mensaje en un cuadro blanco llamado Bloc de notas, y Archivo de diálogo se usa para mostrar/em> cuadro de diálogo cuando abra un archivo desde cualquier parte de su sistema o guarde un archivo en una posición o ubicación específica.

Agregue un menú:

# Añadir controles (widget)


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


# Abrir archivo nuevo

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

comando = self .__ newFile)


# Para abrir un archivo existente

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

comando = self .__ openFile)


# Guardar el archivo actual

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

comando = self .__ saveFile)


# Crea una línea en el diálogo

self .__ thisFileMenu.add_separator()


# Para detener

self .__ thisFileMenu.add_command (label = < clase de código = "cadena"> "Salir" ,

comando = self .__ quitApplication)

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

menu = self .__ thisFileMenu)


# Para agregar un trazo

self .__ thisEditMenu.add_command (etiqueta = "Cortar" ,

comando = self .__ cut)


# Para dar una función de copia

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

comando = self .__ copiar)


# Para agregar una función de inserción

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

comando = self < código clase = "simple"> .__ pegar)


# Para habilitar la edición

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

menú = self .__ thisEditMenu)


# Para crear una función de descripción del bloc de notas

self .__ thisHelpMenu.add_command (label = < clase de código ="cadena ">" Acerca del Bloc de notas " ,

comando = self .__ showAbout )

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

menú = self .__ thisHelpMenu)

< br>

self .__ raíz.config (menú = self .__ thisMenuBar)


self .__ thisScrollBar.pack (lado < /código> = DERECHA, llenar = Y)


# La barra de desplazamiento se ajustará automáticamente
# según el contenido

self .__ thisScrollBar.config (comando = self .__ thisTextArea .yview)

< código class = "color1"> self .__ thisTextArea.config (yscrollcommand = seleccionar f .__ thisScrollBar. conjunto )

Hemos agregado todas las funciones que se requieren en el bloc de notas, también puede agregar otras funciones como tamaño de fuente, color de fuente, negrita, subrayado, etc.

Código principal después combinando todo:


import tkinter

importar os

de tkinter importar *

de tkinter.messagebox importar *

de tkinter.filedialog importar *


clase Bloc de notas:

__ raíz = Tk ()


# ancho y alto predeterminados de la ventana

< clase de código ="espacios indefinidos"> __ thisWidth = 300

__ esta altura = 300

__ thisTextArea = Texto (__raíz)

__ esta barra de menú = Menú (__ raíz)

__ thisFileMenu = Menú (__ thisMenuBar, tearoff = 0 )

__ thisEditMenu = Menú (__ thisMenuBar, tearoff = 0 )

__ thisHelpMenu = Menú (__ thisMenuBar, tearoff = 0 )


# Agregar barra de desplazamiento

__ thisScrollBar = Barra de desplazamiento (__ thisTextArea)

__ file = Ninguno


def __ init __ ( self < /código> , * * kwargs ):


# Establecer icono

probar :

self .__ root .wm_iconbitmap ( "Notepad.ico" )

excepto :

pass


# Establecer el tamaño de la ventana (predeterminado 300x300)


pruebe :

self .__ thisWidth = kwargs [ ’ ancho’ ]

excepto KeyError:

pasar

< br>

prueba :

self .__ thisHeight = kwargs [ ’altura’ ]

excepto KeyError:

pase


# Establecer texto de ventana

self .__ root.title ( "Sin título - Bloc de notas" )


# Centrar la ventana

< clase de código = "simple"> screenWidth = self .__ root. winfo_screenwidth ()

screenHeight = self .__ root .winfo_screenheight()


# Para la izquierda

izquierda = (screenWidth / 2 ) - ( self .__ este ancho / 2 )


# Correcto

arriba = (screenHeight / 2 ) - < clase de código = "simple"> ( self . __thisHeight / 2 )

# Para arriba y abajo

self .__ root.geometry ( ’% dx% d +% d +% d’ % ( self .__ este ancho,

< código class = "color1"> self .__ thisHeight,

izquierda, arriba))

# Para hacer que el área de texto cambie de tamaño automáticamente

/ código> pasar


# Establecer el texto de la ventana

self .__ root.title ( "Sin título - Bloc de notas" )


# Ventana central

ancho de pantalla = self .__ root.winfo_screenwidth()

screenHeight = self .__ root.winfo_screenheight()


# Para la izquierda

izquierda = (screenWidth / 2 )