Crea un semplice modulo utente con Python e Tkinter in 5 minuti – Guida per principianti

Crea modulo utente Python Tkinter in 5 min - Guida principianti

Oggi è diventata una tendenza per tutte le aziende passare al ‘Digitale’. Sia che siano piccole o grandi, è anche pratico utilizzare le applicazioni anziché raccogliere informazioni manualmente. Sembrano professionali anche. Che si tratti di una farmacia o di un negozio di alimentari, dove ci si aspetta che un cliente ti visiti ancora e ancora.

Grazie per la foto di Faizur Rehman su Unsplash

In questo tutorial, mostrerò come creare un modulo utente molto semplice usando Python e Tkinter, una popolare toolkit GUI. Alla fine di questo blog, sarai in grado di sviluppare i tuoi moduli di registrazione per varie applicazioni.

Mi piace creare diverse GUI per i miei progetti di Machine Learning. Mi dà la libertà di espressione per comunicare con il mio utente finale. Creare personalmente una GUI per i miei progetti di Machine Learning mi fa sentire come se stessi raccontando la storia di persona più di chiunque altro che racconti la mia storia.

Ci sono molte librerie che puoi usare per creare una GUI in Python. Alcune famose sono PyQt5, Kivy, PySimpleGUI, Tkinter, ecc. Ho usato Tkinter perché è una libreria GUI semplice e di base che, secondo me, è la migliore per i principianti. Anche se ci sono alcune limitazioni nella creazione di una GUI usando Tkinter quando si tratta di stilizzare la tua GUI, la uso per progetti rapidi.

Sono anche un fan delle app web, ma avrai bisogno del tuo server web per distribuirle se non vuoi divulgare pubblicamente le tue app. Puoi trovare un tutorial per la creazione di un’app web usando Streamlit qui

Invece, trovo facile creare una GUI usando Tkinter e convertirla in un eseguibile e distribuirla all’utente finale semplicemente condividendo il file. è veloce ed economico in termini di tempo e costi.

Prerequisiti:

Dovresti avere Python e Tkinter installati sul tuo sistema. Se non hai Tkinter installato, puoi installarlo usando pip in Anaconda prompt:

pip install tk

Passo 1: Importare le librerie necessarie

Come sempre, dovrai importare tutte le librerie necessarie per il progetto. Abbiamo bisogno dei pacchetti tkinter e openpyxl per questo semplice progetto. Puoi migliorare il tuo codice in base alle tue esigenze.

import openpyxlfrom tkinter import *from tkinter import messagebox

Passo 2: Inizializzare la finestra tkinter

L’ho chiamata root, puoi chiamarla come vuoi. Puoi cambiare il titolo come richiesto all’interno di ‘root.title()‘. ‘root.geometry()‘ definisce le dimensioni della finestra Tkinter. La prima parte descrive la larghezza e la seconda parte si riferisce all’altezza. Puoi modificarlo come richiesto. Qui ho definito una finestra quadrata.

Puoi anche cambiare l’icona di tkinter. Ma, non ne parleremo in questo blog.

# Crea la finestra tkinter principaleroot = Tk()root.title("Modulo di registrazione")root.geometry('300x300')

Passo 3: Crea etichette e campi di inserimento

Ho creato campi per Nome, Cognome, Email e Numero di telefono. Puoi aggiungere o rimuovere campi a seconda delle tue esigenze.

Puoi aggiungere Check Button, Radio Button, Menu, Combo Box, ecc per migliorare il tuo modulo utente.

# Crea etichette e campi di inserimento per ogni inputfirst_name_label = Label(root, text="Nome:")first_name_label.pack()first_name_entry = Entry(root)first_name_entry.pack()Last_name_label = Label(root, text="Cognome:")Last_name_label.pack()Last_name_entry = Entry(root)Last_name_entry.pack()email_label = Label(root, text="Email:")email_label.pack()email_entry = Entry(root)email_entry.pack()Mobile_label = Label(root, text="Telefono:")Mobile_label.pack()Mobile_entry = Entry(root)Mobile_entry.pack()

Per posizionare le etichette e il campo di inserimento, puoi utilizzare diversi metodi come pack, grid e place.

pack() posiziona i widget in scatole orizzontali e verticali che sono limitate alle posizioni sinistra, destra, superiore e inferiore. Ogni scatola è spostata e relativa l’una all’altra. Sento che le limitazioni sono maggiori rispetto ad altri metodi.

grid() posiziona i widget in una griglia bidimensionale di righe e colonne simile a un foglio di calcolo. Anche se è più facile comprendere la logica del posizionamento con questo metodo, è difficile controllare lo spazio tra le righe e le colonne.

place() posiziona i widget in una griglia bidimensionale utilizzando coordinate assolute x e y. Puoi definire la posizione definendo le coordinate x e y o definendo coordinate relative x e y.

Anche se il mio preferito è il metodo ‘place()’ poiché consente di posizionare esattamente dove serve, ho utilizzato il metodo ‘pack()’ in questo blog per mantenere la guida più semplice per i principianti.

Magari in un altro blog, discuterò dettagliatamente quali sono tutte le differenze in ciascun metodo.

Passaggio 4: Crea una funzione per ottenere i dati dai campi di inserimento

Qui, voglio ottenere i dati dall’interfaccia grafica e salvare i dati in Microsoft Excel per un uso futuro. Puoi modificare i dati per cambiare il metodo di salvataggio secondo le tue esigenze.

def register():    # Ottieni l'input dell'utente dal modulo    nome = first_name_entry.get()    cognome = Last_name_entry.get()    email = email_entry.get()    telefono = Mobile_entry.get()    # Crea una nuova riga con l'input dell'utente    nuova_riga = [nome, cognome, email, telefono]    # Aggiungi la nuova riga al foglio Excel    workbook = openpyxl.load_workbook("registration_data.xlsx")    sheet = workbook.active    sheet.append(nuova_riga)    workbook.save("registration_data.xlsx")    messagebox.showinfo("Successo", "Registrazione avvenuta con successo!")

Passaggio 5: Crea il pulsante di invio e avvia il ciclo principale

pulsante_registra = Button(root, text="Registra", command=register)pulsante_registra.pack()root.mainloop()

Questo è l’ultimo passaggio per creare un’interfaccia utente per la registrazione. Puoi confezionare questo codice come un file eseguibile da far eseguire all’utente finale o puoi migliorarlo per creare un’applicazione completa che faccia molte altre cose interessanti.

Codice completo per il tuo utilizzo:

import openpyxlfrom tkinter import *from tkinter import messageboxdef register():    # Ottieni l'input dell'utente dal modulo    nome = first_name_entry.get()    cognome = Last_name_entry.get()    email = email_entry.get()    telefono = Mobile_entry.get()    # Crea una nuova riga con l'input dell'utente    nuova_riga = [nome, cognome, email, telefono]    # Aggiungi la nuova riga al foglio Excel    workbook = openpyxl.load_workbook("registration_data.xlsx")    sheet = workbook.active    sheet.append(nuova_riga)    workbook.save("registration_data.xlsx")    messagebox.showinfo("Successo", "Registrazione avvenuta con successo!")# Crea la finestra principale tkinterroot = Tk()root.title("Modulo di registrazione")root.geometry('300x300')# Crea etichette e campi di inserimento per ogni inputetichetta_nome = Label(root, text="Nome:")etichetta_nome.pack()first_name_entry = Entry(root)first_name_entry.pack()etichetta_cognome = Label(root, text="Cognome:")etichetta_cognome.pack()Last_name_entry = Entry(root)Last_name_entry.pack()etichetta_email = Label(root, text="Email:")etichetta_email.pack()email_entry = Entry(root)email_entry.pack()etichetta_telefono = Label(root, text="Telefono:")etichetta_telefono.pack()Mobile_entry = Entry(root)Mobile_entry.pack()pulsante_registra = Button(root, text="Registra", command=register)pulsante_registra.pack()root.mainloop()

Per favore ricorda che questo è un codice molto basico. Potresti voler utilizzare tecniche di convalida dei dati per utilizzi reali.

Congratulazioni! Hai il tuo primo modulo utente pronto.