Crea Blocco note usando Tkinter

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

Python 3 e Tkinter devono essere già installati sul tuo sistema per creare questo notebook. Puoi scaricare il pacchetto Python appropriato in base ai tuoi requisiti di sistema. Dopo aver installato correttamente Python, devi installare Tkinter (un pacchetto GUI per Python).

Usa questo comando per installare Tkinter:

pip install python-tk 

Tkinter importa:


< tbody>

import tkinter

import os

from tkinter import *


# Per ottenere un posto sopra per un post

from tkinter.messagebox import *


# Per aprire la finestra di dialogo utilizzata secondo necessità

from tkinter.filedialog import *

Nota. Casella messaggi viene utilizzata per scrivere un messaggio in una casella bianca denominata Blocco note e File di dialogo viene utilizzato per visualizzare / em> finestra di dialogo quando apri un file da qualsiasi punto del tuo sistema o salva un file in una posizione o posizione specifica.

Aggiungi un menu:

# Aggiungi controlli (widget)


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


# Apri nuovo file

self .__ thisFileMenu.add_command (etichetta = "Nuovo" ,

comando = self .__ newFile)


# Per aprire un file esistente

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

comando = self .__ openFile)


# Salva il file corrente

self .__ thisFileMenu.add_command (etichetta = "Salva" ,

comando = self .__ saveFile)


# Crea una riga nella finestra di dialogo

self .__ thisFileMenu.add_separator ()


# Per interrompere

self .__ thisFileMenu.add_command (etichetta = "Esci" ,

comando = self .__ quitApplication)

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

menu = self .__ thisFileMenu)


# Per aggiungere un tratto

self .__ thisEditMenu.add_command (etichetta = "Cut" ,

comando = self .__ cut)


# Per fornire una funzione di copia

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

comando = self .__ copy )


# Per aggiungere una funzione di inserimento

self .__ thisEditMenu.add_command (etichetta = "Incolla" ,

comando = self .__ incolla)


# Per abilitare la modifica

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

menu = .__ thisEditMenu)


# Per creare una funzione di descrizione del blocco note

self .__ thisHelpMenu.add_command (etichetta = " Informazioni su Blocco note " ,

comando = self .__ showAbout )

self .__ thisMenuBar.add_cascade (etichetta = "Aiuto" ,

menu = self .__ thisHelpMenu)

< br>

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


self .__ thisScrollBar.pack (lato = DESTRA, compila = Y)


# La barra di scorrimento verrà regolata automaticamente
# in base al contenuto

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

self .__ thisTextArea.config (yscrollcommand = sel f .__ thisScrollBar. set )

Con questo codice aggiungeremo menu alle nostre finestre del blocco note e aggiungeremo cose come copia, incolla, salva, ecc.

Aggiungi funzionalità:

def __ quitApplication ( self ):

self .__ root.destroy()

# exit()


def __ showAbout ( self ):

showinfo ( "Blocco note" , "Mrinal Verma" )

< br>

def __ openFile ( self ):


self .__ file = askopenfilename (estensione predefinita = ". txt" ,

tipi di file = [( "Tutti i file " , " *. * " ),

( "Documenti di testo" , "*. txt" )])

if self .__ file = = "":


# nessun file da aprire

self .__ file = Nessuno

else :

# prova ad aprire il file

# imposta il titolo della finestra

self .__ root.title (os.path. basename ( self .__ file) + " - Nessun tepad " )

self .__ thisTextArea.delete ( 1.0 , END)


file = apri ( self .__ file, "r" )


self .__ thisTextArea.insert ( 1.0 , file . read ())


file . close ()

def __ newFile ( self ):

self .__ root.title ( " Senza titolo - Blocco note " )

self .__ file < classe codice = "parola chiave"> = Nessuno

self .__ thisTextArea.delete ( 1.0 , END)


def __ saveFile ( self ):


if self .__ file = = Nessuno :

# salva come nuovo file

self .__ file = asksaveasfilename (initialfile = ’ Untitled.txt’ ,

defaultextension = ". txt" ,

tipi di file = [( "Tutti i file" , "*. *" ),

( "Documenti di testo" , "*. txt" )])


if self .__ file = = "":

self .__ file = Nessuno

else :

# prova a salvare il file

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

f ile . write ( self .__ thisTextArea.get ( 1.0 , END))

file . close()

# cambia il titolo della finestra

self .__ root.title (os.path.basename ( self .__ file) + "- Blocco note" )



else :

file = apri ( self .__file, "w" )

file . write ( self .__ thisTextArea.get ( 1.0 , END))

file . close()


def __ cut ( self ):

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


def __ copy ( self ):

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


def __ incolla ( self ):

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

Questo abbiamo aggiunto tutte le funzionalità richieste nel blocco note, puoi anche aggiungere altre funzionalità come dimensione del carattere, colore del carattere, grassetto, sottolineato, ecc.

Codice principale dopo combinando tutto:


import tkinter

import os

da tkinter import *

da tkinter.messagebox import *

from tkinter.filedialog import *


classe Blocco note:

__ root = Tk ()


# larghezza e altezza predefinite della finestra

__ thisWidth = 300

__ thisHeight = 300

__ thisTextArea = Testo (__root)

__ thisMenuBar = Menu (__ root)

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

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

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


# Aggiungi barra di scorrimento

__ thisScrollBar = Barra di scorrimento (__ thisTextArea)

__ file = Nessuno


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


# Imposta icona

prova :

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

tranne :

pass


# Imposta la dimensione della finestra (predefinita 300x300)


try :

self .__ thisWidth = kwargs [ ’ width’ ]

tranne KeyError:

pass

< br>

prova :

self .__ thisHeight = kwargs [ ’height’ ]

tranne KeyError:

pass


# Imposta il testo della finestra

self .__ root.title ( "Senza titolo - Blocco note" )


# Centrare la finestra

screenWidth = self .__ root. winfo_screenwidth()

screenHeight = self .__ root .winfo_screenheight()


# Per la sinistra

sinistra = (screenWidth / 2 ) - ( self .__ thisWidth / 2 )


# Giusto

top = (screenHeight / 2 ) - ( self . __thisHeight / 2 )

# Per la parte superiore e inferiore

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

self .__ thisHeight,

sinistra, in alto))

# Per ridimensionare automaticamente l’area di testo

/ code> pass


# Imposta il testo della finestra

self .__ root.title ( "Senza titolo - Blocco note" )


# Finestra centrale

screenWidth = self .__ root.winfo_screenwidth()

screenHeight = self .__ root.winfo_screenheight ()


# Per la sinistra

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