Att lägga till ett grafiskt användargränssnitt (GUI) för ditt Raspberry Pi-projekt är ett utmärkt sätt att inkludera en skärm för datainmatning, knappar på skärmen för kontroller eller till och med bara ett smartare sätt att visa avläsningar från komponenter som sensorer.
01 av 10Gör ett gränssnitt för ditt projekt
Det finns ett antal olika GUI-metoder tillgängliga för Raspberry Pi, men de flesta har en brant inlärningskurva.
Tkinter Python-gränssnittet kan vara standardalternativet "go-to" för de flesta, men nybörjare kan kämpa med sin komplexitet. På samma sätt erbjuder PyGame-biblioteket möjligheter att göra imponerande gränssnitt, men kan vara överflödigt till krav.
Om du letar efter ett enkelt och snabbt gränssnitt för ditt projekt, kan EasyGUI vara svaret. Vad det saknar i grafisk skönhet gör det mer än det som är enkelt och enkelt att använda.
Den här artikeln ger dig en introduktion till biblioteket, inklusive några av de mest användbara alternativen vi hittat.
Fortsätt läsa nedan
02 av 10Hämtar och importerar EasyGUI
För den här artikeln använder vi standarden Raspbian operativsystem.
Installera biblioteket är en välbekant process för de flesta, med hjälp av "apt-get install" -metoden. Du behöver en internetanslutning på din Raspberry Pi, med antingen en trådlös Ethernet- eller WiFi-anslutning.
Öppna ett terminalfönster (ikonen för en svart skärm på Pi-aktivitetsfältet) och skriv följande kommando:
apt-get install python-easygui
Kommandot hämtar biblioteket och installerar det för dig, och det är all den inställning du behöver göra. Fortsätt läsa nedan EasyGUI behöver importeras till ett manus innan du kan använda funktionerna. Detta uppnås genom att ange en enda rad överst på ditt skript och är densamma oavsett vilka EasyGUI-gränssnittsalternativ du använder. Skapa ett nytt skript genom att ange följande kommando i ditt terminalfönster: sudo nano easygui.py
En tom skärm kommer att visas - det här är din tomma fil (nano är helt enkelt namnet på en textredigerare). För att importera EasyGUI till ditt skript anger du följande rad: från easygui import *
Vi använder den här specifika versionen av importen för att göra kodningen ännu enklare senare. Till exempel, när du importerar denna eway, istället för att skriva "easygui.msgbox" kan vi helt enkelt använda "msgbox". Låt oss nu täcka några av de viktigaste gränssnittsalternativen inom EasyGUI. Denna "meddelandebox", i sin enklaste form, ger användaren en rad text och en enda knapp för att klicka. Här är ett exempel att försöka - skriv in följande rad efter din importlinje och spara med Ctrl + X: msgbox ("Cool box huh?", "Jag är en meddelandelåda")
För att köra skriptet, använd följande kommando: sudo python easygui.py
Du borde se en meddelanderuta visas med Jag är en meddelandebox skrivet i toppraden, och Cool box va? ovanför knappen. Fortsätt läsa nedan Ibland behöver du användaren att bekräfta en åtgärd eller välja om du vill fortsätta eller inte. Boxen "ccbox" erbjuder samma textrad som den grundläggande meddelandeboxen ovan, men ger 2 knappar - Fortsätta och Annullera. Här är ett exempel på en i bruk, med fortsätt och avbryt knappar som skrivs ut till terminalen. Du kan ändra åtgärden efter varje knapptryckning för att göra vad du vill: från easygui import *importtidmsg = "Vill du fortsätta?"title = "Fortsätt?"om ccbox (msg, title): # visa en Fortsätt / Avbryt dialog skriv ut "Användare vald fortsätt" # Lägg till andra kommandon här annars: # användare valde Avbryt skriv ut "Användaren avbröts" # Lägg till andra kommandon här 06 av 10 Om de inbyggda rutan inte ger dig det du behöver, kan du skapa en anpassad knapplåda med hjälp av funktionen "knapplåda". Detta är bra om du har fler alternativ som behöver täcka, eller kanske kontrollerar ett antal lysdioder eller andra komponenter med användargränssnittet. Här är ett exempel på att välja sås för en order: från easygui import *importtid msg = "Vilken sås skulle du vilja?"val = "Mild", "Hot", "Extra Hot"answer = buttonbox (msg, options = options) om svar == "Mild": skriva ut svarom svaret == "Hot": skriva ut svarom svaret == "Extra Hot": skriva ut svar
Fortsätt läsa nedan Knappar är bra, men för långa listor med alternativ, ger en "valbox" mycket mening. Försök montera 10 knappar i en låda och du kommer snart att hålla med! Dessa rutor listar de tillgängliga alternativen i raderna en efter en, med en "OK" och "Avbryt" rutan till sidan. De är rimligt smarta, sorterar alternativen alfabetiskt och låter dig också trycka på en tangent för att hoppa till det första alternativet i den bokstaven. Här är ett exempel som visar tio namn, som du kan se har sorterats i skärmdumpen. från easygui import *importtidmsg = "Vem låter hundarna ut?"title = "saknade hundar"val = Alex, Cat, Michael, James, Albert, Phil, Yasmin, Frank, Tim, Hannahchoice = choicebox (msg, title, choices) 08 av 10 Forms är ett bra sätt att fånga data för ditt projekt, och EasyGUI har ett "multenterbox" alternativ som låter dig visa märkta fält för att fånga information med. Återigen är det ett fall av märkningsfält och helt enkelt att fånga in inmatningen. Vi har gjort ett exempel nedan för ett mycket enkelt gym medlemskap anmälningsformulär. Det finns alternativ att lägga till validering och andra avancerade funktioner, som EasyGUI webbplats täcker i detalj. från easygui import *importtidmsg = "Medlemsinformation"title = "Gym Membership Form"fieldNames = "Förnamn", "Efternamn", "Ålder", "Vikt"fieldValues = # startvärdenafieldValues = multenterbox (msg, title, fieldNames)Skriv ut fältValues Fortsätt läsa nedan Du kan lägga till bilder i dina EasyGUI-gränssnitt genom att inkludera en mycket liten mängd kod. Spara en bild till din Raspberry Pi i samma katalog som ditt EasyGUI-skript och notera filnamnet och tillägget (till exempel, image1.png ). Låt oss använda knapprutan som ett exempel: från easygui import *importtidimage = "RaspberryPi.jpg"msg = "Är det en Raspberry Pi?"val = "Ja", "Nej"answer = buttonbox (msg, image = bild, val = val)om svaret == "Ja": skriv ut "ja"annan: skriv ut "nej" 10 av 10 Vi har täckt de viktigaste "grundläggande" EasyGUI-alternativen här för att komma igång, men det finns många fler boxalternativ och exempel tillgängliga beroende på hur mycket du vill lära dig och vad ditt projekt kräver. Lösenordslådor, kodlådor och till och med fillådor är tillgängliga för att nämna några. Det är ett väldigt mångsidigt bibliotek som är lätt att hämta på några minuter, med några bra hårdvara kontrollmöjligheter också. Om du vill lära dig hur du kodar andra saker som Java, HTML eller mer kan du se de bästa tillgängliga online-kodningsresurserna. Importera EasyGUI
Basic Message Box
Fortsätt eller Avbryt Box
Anpassad knapplåda
Choice Box
Datainmatningsfält
Lägga till bilder
Fler avancerade funktioner