Tilføjelse af en grafisk brugergrænseflade (GUI) til din Raspberry Pi-projekt er en fantastisk måde at inkludere en skærm til dataindtastning, knapper på skærmen til betjening eller endda en smartere måde at vise aflæsninger fra komponenter som sensorer på.
01 af 10Lav et interface til dit projekt
Der findes en række forskellige GUI metoder til Raspberry Pi, men de fleste har en stejl indlæringskurve.
Tkinter Python-grænsefladen kan være standardindstillingen "go-to" for de fleste, men begyndere kan kæmpe med dens kompleksitet. På samme måde tilbyder PyGame biblioteket muligheder for at lave imponerende grænseflader, men kan være overskydende til krav.
Hvis du leder efter en enkel og hurtig grænseflade til dit projekt, kan EasyGUI være svaret. Hvad det mangler i grafisk skønhed, udgør det mere end det i sin enkelhed og brugervenlighed.
Denne artikel vil give dig en introduktion til biblioteket, herunder nogle af de mest nyttige muligheder, vi har fundet.
Fortsæt læsning herunder
02 af 10Download og importere EasyGUI
I denne artikel bruger vi standard Raspbian-operativsystemet.
Installation af biblioteket vil være en velkendt proces for de fleste ved hjælp af "apt-get install" -metoden. Du skal bruge en internetforbindelse på din Raspberry Pi, enten ved hjælp af en kablet Ethernet eller WiFi-forbindelse.
Åbn et terminalvindue (ikonet for en sort skærm på din Pi's proceslinje) og indtast følgende kommando:
apt-get install python-easygui
Denne kommando vil downloade biblioteket og installere det for dig, og det er alt det setup du skal gøre. Fortsæt læsning herunder EasyGUI skal importeres til et script, før du kan bruge sine funktioner. Dette opnås ved at indtaste en enkelt linje øverst på scriptet, og det er det samme uanset hvilke EasyGUI-grænsefladeindstillinger du bruger. Opret et nyt script ved at indtaste følgende kommando i dit terminal vindue: sudo nano easygui.py
Der vises en tom skærm - dette er din tomme fil (nano er simpelthen navnet på en tekstredigerer). Hvis du vil importere EasyGUI til dit script, skal du indtaste følgende linje: fra easygui import *
Vi bruger denne specifikke version af importen til at gøre kodningen endnu lettere senere. For eksempel, når du importerer denne eway, i stedet for at skulle skrive 'easygui.msgbox', kan vi simpelthen bruge "msgbox." Lad os nu dække nogle af de vigtigste interface muligheder inden for EasyGUI. Denne "meddelelsesboks" i sin enkleste form giver brugeren en tekstlinje og en enkelt knap for at klikke. Her er et eksempel at prøve - indtast følgende linje efter din importlinje og gem med Ctrl + X: msgbox ("Cool box huh?", "Jeg er en Message Box")
For at køre scriptet skal du bruge følgende kommando: sudo python easygui.py
Du skal se, at en meddelelsesboks vises med Jeg er en besked boks skrevet i øverste bjælke, og Cool kasse, huh? over knappen. Fortsæt læsning herunder Nogle gange skal du bruge brugeren til at bekræfte en handling eller vælge om du vil fortsætte eller ej. "Ccbox" boksen tilbyder samme tekstlinje som den grundlæggende meddelelsesboks ovenfor, men giver 2 knapper - Blive ved og Afbestille. Her er et eksempel på en i brug, med fortsæt og annuller knapperne udskrivning til terminalen. Du kan ændre handlingen efter hver tryk på knappen for at gøre hvad du vil: fra easygui import *importtidmsg = "Vil du fortsætte?"title = "Fortsæt?"Hvis ccbox (msg, title): # viser en Fortsæt / Annuller dialog print "Bruger valgt fortsæt" # Tilføj andre kommandoer her ellers: # bruger valgte Cancel print "bruger annulleret" # Tilføj andre kommandoer her 06 af 10 Hvis de indbyggede boksindstillinger ikke giver dig det rigtige, kan du oprette en brugerdefineret knapboks ved hjælp af funktionen "knappeboks". Dette er fantastisk, hvis du har flere muligheder, der skal dække eller måske styrer en række lysdioder eller andre komponenter med brugergrænsefladen. Her er et eksempel på valg af sauce til en ordre: fra easygui import *importtid msg = "Hvilken sovs vil du gerne?"valg = "Mild", "Hot", "Extra Hot"reply = buttonbox (msg, valg = valg) hvis svar == "Mild": Udskriv svarhvis svar == "Hot": Udskriv svarhvis svar == "ekstra varmt": Udskriv svar
Fortsæt læsning herunder Knapper er gode, men for lange lister over muligheder giver en "valgboks" meget mening. Prøv at montere 10 knapper i en kasse, og du vil snart være enig! Disse felter angiver de tilgængelige indstillinger i rækker en efter en, med en 'OK' og 'Annuller' boks til siden. De er rimeligt kloge, sorterer indstillingerne alfabetisk og giver dig også mulighed for at trykke på en tast for at hoppe til den første mulighed for det pågældende brev. Her er et eksempel, der viser ti navne, som du kan se er blevet sorteret i skærmbilledet. fra easygui import *importtidmsg = "Hvem lader hundene ud?"title = "Manglende hunde"valg = "Alex", "Kat", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"valg = valgboks (msg, titel, valg) 08 af 10 Formularer er en fantastisk måde at indsamle data til dit projekt, og EasyGUI har en 'multenterbox'-indstilling, der giver dig mulighed for at vise markerede felter for at indhente oplysninger med. Endnu en gang er det et tilfælde af mærkning felter og blot at fange input. Vi har lavet et eksempel nedenfor for et meget simpelt tilmeldingsformular til gym medlemskab. Der er muligheder for at tilføje validering og andre avancerede funktioner, som EasyGUI hjemmeside dækker i detaljer. fra easygui import *importtidmsg = "Medlemsoplysninger"title = "Gym Membership Form"fieldNames = "Fornavn", "Efternavn", "Alder", "Vægt"fieldValues = # startværdiernefieldValues = multenterbox (msg, title, fieldNames)print fieldValues Fortsæt læsning herunder Du kan tilføje billeder til dine EasyGUI-grænseflader ved at inkludere en meget lille mængde kode. Gem et billede til din Raspberry Pi i samme mappe som dit EasyGUI script og noter filnavnet og udvidelsen (for eksempel, image1.png ). Lad os bruge knappekassen som et eksempel: fra easygui import *importtidimage = "RaspberryPi.jpg"msg = "Er dette en Raspberry Pi?"valg = "Ja", "Nej"reply = buttonbox (msg, image = billede, valg = valg)hvis svar == "ja": udskrive "ja"andet: print "nej" 10 af 10 Vi har dækket de vigtigste "grundlæggende" EasyGUI muligheder her for at komme i gang, men der er mange flere boks muligheder og eksempler tilgængelige afhængigt af hvor meget du vil lære, og hvad dit projekt kræver. Adgangskasser, kodebokse og endda filkasser er tilgængelige for at nævne nogle få. Det er et meget alsidigt bibliotek, der er let at hente i få minutter, med nogle gode hardwarekontrolmuligheder. Hvis du vil lære at kode andre ting som Java, HTML eller mere, kan du se de bedste online kodningsressourcer til rådighed. Import EasyGUI
Grundlæggende meddelelsesboks
Fortsæt eller Annuller boks
Brugerdefineret knappeboks
Valgboks
Dataregistreringsboks
Tilføjelse af billeder
Mere avancerede funktioner