Å legge til et grafisk brukergrensesnitt (GUI) til Raspberry Pi-prosjektet er en fin måte å inkludere en skjerm for datainngang, knapper på skjermen for kontroller eller til og med bare en smartere måte å vise avlesninger fra komponenter som sensorer.
01 av 10Lag et grensesnitt for prosjektet ditt
Det finnes en rekke forskjellige GUI metoder for Raspberry Pi, men de fleste har en bratt læringskurve.
Tkinter Python-grensesnittet kan være standard "go-to" -alternativ for de fleste, men nybegynnere kan kjempe med sin kompleksitet. På samme måte tilbyr PyGame-biblioteket muligheter for å lage imponerende grensesnitt, men kan overskride kravene.
Hvis du leter etter et enkelt og raskt grensesnitt for prosjektet ditt, kan EasyGUI være svaret. Det som mangler i grafisk skjønnhet, gjør det mer enn i sin enkelhet og brukervennlighet.
Denne artikkelen vil gi deg en introduksjon til biblioteket, inkludert noen av de mest nyttige alternativene vi har funnet.
Fortsett å lese nedenfor
02 av 10Laster ned og importerer EasyGUI
For denne artikkelen bruker vi standard Raspbian operativsystemet.
Installasjon av biblioteket vil være et kjent prosess for de fleste, ved hjelp av "apt-get install" -metoden. Du trenger en Internett-tilkobling på Raspberry Pi, med enten en kablet Ethernet eller WiFi-tilkobling.
Åpne et terminalvindu (ikonet for en svart skjerm på Pi-oppgavelinjen) og skriv inn følgende kommando:
apt-get install python-easygui
Denne kommandoen laster ned biblioteket og installerer det for deg, og det er alt oppsettet du trenger å gjøre. Fortsett å lese nedenfor EasyGUI må importeres til et skript før du kan bruke sine funksjoner. Dette oppnås ved å legge inn en enkelt linje øverst på skriptet ditt og er det samme uansett hvilke EasyGUI-grensesnittalternativer du bruker. Opprett et nytt skript ved å skrive inn følgende kommando i terminalvinduet ditt: sudo nano easygui.py
En tom skjerm vises - dette er din tomme fil (nano er bare navnet på en tekstredigerer). For å importere EasyGUI til skriptet, skriv inn følgende linje: fra easygui import *
Vi bruker denne spesifikke versjonen av importen for å gjøre kodingen enda enklere senere. For eksempel, når du importerer denne eway, i stedet for å skrive 'easygui.msgbox', kan vi bare bruke "msgbox." La oss nå dekke noen av de viktigste grensesnittalternativene i EasyGUI. Denne "meldingsboksen", i sin enkleste form, gir brukeren en linje med tekst og en enkelt knapp for å klikke. Her er et eksempel å prøve - skriv inn følgende linje etter importlinjen, og lagre ved hjelp av Ctrl + X: msgbox ("Cool box huh?", "Jeg er en meldingskasse")
For å kjøre skriptet, bruk følgende kommando: sudo python easygui.py
Du bør se en meldingskasse vises med Jeg er en meldingskasse skrevet i topplinjen, og Kjølig boks hei? over knappen. Fortsett å lese nedenfor Noen ganger trenger du brukeren til å bekrefte en handling eller velge om du vil fortsette eller ikke. Boksen "ccbox" tilbyr samme linje med tekst som den grunnleggende meldingsboksen ovenfor, men gir 2 knapper - Fortsette og Avbryt. Her er et eksempel på en i bruk, med fortsett og avbryt knapper utskrift til terminalen. Du kan endre handlingen etter at hver knapp trykker på for å gjøre hva du vil: fra easygui import *importtidmsg = "Vil du fortsette?"title = "Fortsett?"Hvis ccbox (msg, title): # viser en Fortsett / Avbryt dialog skriv ut "Bruker valgt fortsett" # Legg til andre kommandoer her ellers: # bruker valgte Avbryt skriv ut "Bruker avbrutt" # Legg til andre kommandoer her 06 av 10 Hvis de innebygde boksalternativene ikke gir deg det du trenger, kan du opprette en egendefinert knappeboks ved hjelp av "knappeboks" -funksjonen. Dette er flott hvis du har flere alternativer som trenger dekning, eller kanskje styrer en rekke lysdioder eller andre komponenter med brukergrensesnittet. Her er et eksempel på valg av saus for en bestilling: fra easygui import *importtid msg = "Hvilken saus vil du ha?"valg = "Mild", "Hot", "Ekstra varmt"answer = buttonbox (msg, valg = valg) hvis svar == "Mild": skriv svarhvis svaret == "varmt": skriv svarhvis svar == "ekstra varmt": skriv svar
Fortsett å lese nedenfor Knapper er flotte, men for lange lister over alternativer, gir en "valgboks" mye mening. Prøv å montere 10 knapper i en boks, og du vil snart være enig! Disse boksene viser de tilgjengelige alternativene i radene en etter en, med en "OK" og "Avbryt" -boksen til siden. De er rimelig smart, sorterer alternativene alfabetisk og lar deg også trykke på en tast for å hoppe til det første alternativet til det bokstaven. Her er et eksempel som viser ti navn, som du kan se er sortert i skjermbildet. fra easygui import *importtidmsg = "Hvem la hundene ut?"title = "savnet hunder"valg = "Alex", "Katt", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"valg = valgboks (msg, tittel, valg) 08 av 10 Skjemaer er en fin måte å fange opp data for prosjektet ditt, og EasyGUI har et multenterbox-alternativ som lar deg vise merkede felt for å fange informasjon med. Igjen er det et tilfelle av merking av felt og bare å fange innspillet. Vi har laget et eksempel nedenfor for et veldig enkelt registreringsskjema for treningsmedlemskap. Det er muligheter for å legge til validering og andre avanserte funksjoner, som EasyGUI-nettstedet dekker i detalj. fra easygui import *importtidmsg = "Medlemsinformasjon"title = "Gym Membership Form"fieldNames = "Fornavn", "Etternavn", "Alder", "Vekt"fieldValues = # startverdienefieldValues = multenterbox (msg, title, fieldNames)skrivefeltValuer Fortsett å lese nedenfor Du kan legge til bilder i EasyGUI-grensesnittene dine ved å inkludere en veldig liten mengde kode. Lagre et bilde på Raspberry Pi i samme katalog som EasyGUI-skriptet og noter filnavnet og utvidelsen (for eksempel, image1.png ). La oss bruke knappeboksen som et eksempel: fra easygui import *importtidimage = "RaspberryPi.jpg"msg = "Er dette en Raspberry Pi?"valg = "Ja", "Nei"answer = buttonbox (msg, image = bilde, valg = valg)hvis svar == "ja": skriv ut "ja"ellers: skriv ut "Nei" 10 av 10 Vi har dekket de viktigste "grunnleggende" EasyGUI-alternativene her for å komme i gang, men det er mange flere boksalternativer og eksempler tilgjengelig, avhengig av hvor mye du vil lære og hva prosjektet ditt krever. Passord bokser, kode bokser, og til og med fil bokser er tilgjengelige for å nevne noen. Det er et veldig allsidig bibliotek som er enkelt å hente i løpet av minutter, med noen gode maskinvarekontrollmuligheter også. Hvis du vil lære å kode andre ting som Java, HTML eller mer, kan du se de beste tilgjengelige kodingsressursene på nettet. Importer EasyGUI
Grunnleggende meldingsboks
Fortsett eller Avbryt boks
Tilpasset knappeboks
Valgboks
Dataregistrering
Legge til bilder
Mer avanserte funksjoner