Crea GUI semplici con il Raspberry Pi usando EasyGUI
Aggiunta di un'interfaccia utente grafica (GUI) alla tua Lampone Pi project è un ottimo modo per includere uno schermo per l'immissione dei dati, pulsanti sullo schermo per i controlli o un modo più intelligente per mostrare le letture da componenti come i sensori.
Questo articolo utilizza il sistema operativo Raspbian standard.
Crea un'interfaccia per il tuo progetto
Sono disponibili diversi metodi GUI per Raspberry Pi. Tuttavia, la maggior parte ha una curva di apprendimento ripida.
L'interfaccia Tkinter Python potrebbe essere l'opzione predefinita per la maggior parte, ma i principianti possono lottare con la sua complessità. Allo stesso modo, la libreria PyGame offre possibilità di creare interfacce impressionanti, ma potrebbe essere in eccesso rispetto ai requisiti.
Se stai cercando un'interfaccia rapida e semplice per il tuo progetto, EasyGUI potrebbe essere la risposta. Ciò che manca nella bellezza grafica, è più che compensato dalla sua semplicità e facilità d'uso.

Questo articolo fornisce un'introduzione alla libreria, incluse alcune delle opzioni più utili che abbiamo trovato.
Scarica e importa EasyGUI
L'installazione della libreria sarà familiare se hai utilizzato il metodo apt-get install. Hai bisogno di una connessione Internet sul tuo Raspberry Pi, usando una connessione cablata Ethernet o Wifi connessione.
Questo comando scarica la libreria e la installa per te. Questa è tutta la configurazione che devi fare.
-
Apri una finestra del terminale (l'icona di una schermata nera sulla barra delle applicazioni del tuo Pi) e inserisci il seguente comando:
da importazione easygui *
tempo di importazioneQuesta versione dell'importazione semplifica la codifica in seguito. Ad esempio, quando si importa in questo modo, invece di scrivere easygui.msgbox, Puoi usare msgbox.
-
Nella sua forma più semplice, questo casella dei messaggi fornisce una riga di testo e un singolo pulsante su cui fare clic. Ecco un esempio da provare. Inserisci la seguente riga dopo la riga di importazione e salva utilizzando Ctrl+X:
da importazione easygui *
tempo di importazione
msg = "Bella scatola eh?"
title = "Sono una casella di messaggio"
# Aggiungi altri comandi quiViene visualizzata una finestra di messaggio, con Sono una casella di messaggio scritto nella barra in alto, e Bella scatola eh? sopra il pulsante.
-
A volte è necessario che l'utente confermi un'azione o scelga se continuare. La casella ccbox offre la stessa riga di testo della casella di messaggio principale sopra, ma fornisce due pulsanti: Continua e Annulla.
Ecco un esempio di uno in uso, con i pulsanti continua e annulla che stampano sul terminale. Puoi cambiare l'azione dopo ogni pressione del pulsante per fare quello che vuoi:
da importazione easygui *
tempo di importazione
msg = "Vuoi continuare?"
titolo = "Continua?"
if ccbox (msg, title): # mostra una finestra di dialogo Continua/Annulla
print "Utente selezionato continua"
# Aggiungi altri comandi qui
altro: # l'utente ha scelto Annulla
stampa "Utente cancellato"
# Aggiungi altri comandi qui -
Se le opzioni della casella integrata non ti danno ciò di cui hai bisogno, crea una casella di pulsanti personalizzata utilizzando il pulsante pulsantiera caratteristica. Questo è ottimo se hai più opzioni che necessitano di copertura o forse stai controllando un numero di LED o altri componenti con l'interfaccia utente.
Ecco un esempio di selezione della salsa per un ordine:
da importazione easygui *
import time msg = "Quale salsa vuoi?"
scelte = ["Mite","Caldo","Extra caldo"]
reply = buttonbox (msg, choice=choices) if reply == "lieve":
stampa la risposta
if risposta == "Hot":
stampa la risposta
if risposta == "Extra caldo":
stampa la risposta -
I pulsanti sono fantastici, ma per lunghi elenchi di opzioni, a casella di scelta ha senso. Queste caselle elencano le opzioni disponibili in righe, una dopo l'altra. Un ok e Annulla la scatola è a lato. Questi sono ragionevolmente intelligenti, ordinando le opzioni in ordine alfabetico e consentendo anche di premere un tasto per passare alla prima opzione di quella lettera.
Ecco un esempio che mostra dieci nomi, che puoi vedere sono stati ordinati nello screenshot.
da importazione easygui *
tempo di importazione
msg ="Chi ha fatto uscire i cani?"
title = "Cani scomparsi"
scelte = ["Alex", "Gatto", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"]
scelta = casella di scelta (msg, titolo, scelte) -
I moduli sono un ottimo modo per acquisire dati per il tuo progetto. EasyGUI ha un scatola multipla opzione che consente di visualizzare i campi etichettati per ottenere informazioni.
Si tratta di etichettare i campi e acquisire l'input. L'esempio seguente è per un semplice modulo di iscrizione a una palestra.
Ci sono opzioni per aggiungere la convalida e altre funzionalità avanzate, che il sito Web EasyGUI tratta in dettaglio.
da importazione easygui *
tempo di importazione
msg = "Informazioni sui membri"
title = "Modulo di iscrizione alla palestra"
fieldNames = ["Nome","Cognome","Età","Peso"]
fieldValues = [] # i valori iniziali
fieldValues = multienterbox (msg, title, fieldNames)
print fieldValues -
Puoi aggiungere immagini alle tue interfacce EasyGUI includendo una quantità minima di codice. Salva un'immagine sul tuo Raspberry Pi nella stessa directory dello script EasyGUI e prendi nota del nome e dell'estensione del file (ad esempio, immagine1.png).
Usando la casella dei pulsanti come esempio:
da importazione easygui *
tempo di importazione
image = "RaspberryPi.jpg"
msg = "Questo è un Raspberry Pi?"
scelte = ["Sì","No"]
risposta = casella pulsanti (msg, immagine=immagine, scelte=scelte)
se rispondi == "Sì":
stampa "Sì"
altro:
stampa "No"
Funzionalità più avanzate
Ci sono più opzioni di box ed esempi disponibili a seconda di quanto vuoi imparare e di cosa richiede il tuo progetto.

Sono disponibili caselle password, caselle codice e caselle file, solo per citarne alcune. È una libreria versatile facile da raccogliere in pochi minuti, con anche alcune eccellenti possibilità di controllo dell'hardware.
Se desideri imparare a codificare altre cose come Java, HTML o altro, dai un'occhiata alle migliori risorse di codifica online disponibili.