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> 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 ) |
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 >""
)
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 )