Het toevoegen van een grafische gebruikersinterface (GUI) aan uw Raspberry Pi-project is een geweldige manier om een scherm voor gegevensinvoer op te nemen, knoppen op het scherm voor bedieningselementen of zelfs gewoon een slimmere manier om metingen van componenten zoals sensoren te tonen.
01 van 10Maak een interface voor uw project
Er zijn een aantal verschillende GUI-methoden beschikbaar voor de Raspberry Pi, maar de meeste hebben een steile leercurve.
De Tkinter Python-interface is voor de meesten misschien de standaard "go-to" -optie, maar beginners kunnen moeite hebben met de complexiteit ervan. Op dezelfde manier biedt de PyGame-bibliotheek opties voor het maken van indrukwekkende interfaces, maar dit kan een overschot zijn op de vereisten.
Als u op zoek bent naar een eenvoudige en snelle interface voor uw project, kan EasyGUI het antwoord zijn. Wat het mist in grafische schoonheid, maakt het meer dan goed in zijn eenvoud en gebruiksgemak.
Dit artikel geeft je een inleiding tot de bibliotheek, inclusief enkele van de nuttigste opties die we hebben gevonden.
Lees hieronder verder
02 van 10EasyGUI downloaden en importeren
Voor dit artikel gebruiken we het standaard Raspbian-besturingssysteem.
Het installeren van de bibliotheek zal voor de meesten een vertrouwd proces zijn, met behulp van de "apt-get install" -methode. U hebt een internetverbinding op uw Raspberry Pi nodig via een bekabelde Ethernet- of WiFi-verbinding.
Open een terminalvenster (het pictogram van een zwart scherm op de taakbalk van uw Pi) en voer de volgende opdracht in:
apt-get install python-easygui
Met deze opdracht wordt de bibliotheek gedownload en voor u geïnstalleerd, en dat is alles wat u hoeft te doen. Lees hieronder verder EasyGUI moet in een script worden geïmporteerd voordat u de functies ervan kunt gebruiken. Dit wordt bereikt door een enkele regel bovenaan uw script in te voeren en is hetzelfde ongeacht welke EasyGUI-interface-opties u gebruikt. Maak een nieuw script door de volgende opdracht in uw terminalvenster in te voeren: sudo nano easygui.py
Er verschijnt een leeg scherm - dit is je lege bestand (nano is gewoon de naam van een teksteditor). Voer de volgende regel in om EasyGUI in uw script te importeren: van import van easygui *
We gebruiken deze specifieke versie van de import om het coderen later nog eenvoudiger te maken. Wanneer we bijvoorbeeld deze eway importeren, hoeven we niet 'easygui.msgbox' te schrijven, maar 'msgbox'. Laten we nu een paar van de belangrijkste interface-opties binnen EasyGUI bespreken. Dit "berichtenvenster", in de eenvoudigste vorm, geeft de gebruiker een regel tekst en een enkele knop om te klikken. Hier is een voorbeeld om te proberen - voer de volgende regel in na uw importregel en sla op met Ctrl + X: msgbox ("Koelbox hè?", "Ik ben een berichtenbox")
Gebruik de volgende opdracht om het script uit te voeren: sudo python easygui.py
U zou een berichtvenster moeten zien verschijnen, met Ik ben een berichtenbox geschreven in de bovenste balk, en Koelbox hè? boven de knop. Lees hieronder verder Soms hebt u de gebruiker nodig om een actie te bevestigen of te kiezen om door te gaan of niet. Het vak "ccbox" biedt dezelfde regel tekst als het standaard berichtvak hierboven, maar biedt 2 knoppen - Doorgaan met en annuleren. Hier is een voorbeeld van een in gebruik, waarbij de knoppen Doorgaan en Annuleren naar de terminal worden afgedrukt. Je zou de actie na elke druk op de knop kunnen veranderen om te doen wat je maar wilt: van import van easygui *import tijdmsg = "Wilt u doorgaan?"title = "Doorgaan?"als ccbox (bericht, titel): # een dialoogvenster Doorgaan / Annuleren toont print "Door gebruiker geselecteerd doorgaan" # Voeg hier nog andere commando's toe else: # gebruiker heeft Annuleren gekozen print "Gebruiker geannuleerd" # Voeg hier nog andere commando's toe 06 van 10 Als de ingebouwde box-opties je niet echt geven wat je nodig hebt, kun je een aangepast knopvenster maken met de "buttonbox" -functie. Dit is geweldig als u meer opties hebt die dekking nodig hebben, of misschien een aantal LED's of andere componenten besturen met de gebruikersinterface. Hier is een voorbeeld van het selecteren van saus voor een bestelling: van import van easygui *import time msg = "Welke saus zou u willen?"keuzes = "Mild", "Heet", "Extra Heet"reply = buttonbox (msg, choices = choices) if reply == "Mild": print antwoordals antwoord == "Heet": print antwoordindien antwoord == "Extra Hot": print antwoord
Lees hieronder verder Knoppen zijn geweldig, maar voor lange keuzelijsten is een "keuzevak" heel logisch. Probeer 10 knoppen in een doos te plaatsen en je bent het er gauw mee eens! In deze vakken worden de beschikbare opties in rijen één voor één weergegeven, met een 'OK'- en' Annuleer'-vak aan de zijkant. Ze zijn redelijk slim, sorteren de opties alfabetisch en laten je ook op een toets drukken om naar de eerste optie van die letter te gaan. Hier is een voorbeeld van tien namen, waarvan u kunt zien dat deze in het screenshot zijn gesorteerd. van import van easygui *import tijdmsg = "Wie heeft de honden uitgelaten?"title = "Ontbrekende Honden"keuzes = "Alex", "Kat", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"choice = choicebox (bericht, titel, keuzes) 08 van 10 Formulieren zijn een geweldige manier om gegevens voor uw project vast te leggen en EasyGUI heeft een 'multenterbox'-optie waarmee u gelabelde velden kunt tonen waarmee u informatie kunt vastleggen. Nogmaals, het is een kwestie van velden labelen en eenvoudig de invoer vastleggen. We hebben hieronder een voorbeeld gemaakt voor een eenvoudig inschrijvingsformulier voor een lidmaatschap voor sportscholen. Er zijn opties om validatie toe te voegen en andere geavanceerde functies die de EasyGUI-website in detail behandelt. van import van easygui *import tijdmsg = "Ledeninformatie"title = "Lidmaatschapformulier sportschool"fieldNames = "Voornaam", "Achternaam", "Leeftijd", "Gewicht"fieldValues = # de startwaardenfieldValues = multenterbox (msg, title, fieldNames)print fieldValues Lees hieronder verder U kunt afbeeldingen toevoegen aan uw EasyGUI-interfaces door een zeer kleine hoeveelheid code op te nemen. Sla een afbeelding op uw Raspberry Pi op in dezelfde map als uw EasyGUI-script en noteer de bestandsnaam en extensie (bijvoorbeeld image1.png ). Laten we de knopbox als voorbeeld gebruiken: van import van easygui *import tijdimage = "RaspberryPi.jpg"msg = "Is dit een Raspberry Pi?"keuzes = "Ja", "Nee"reply = buttonbox (bericht, afbeelding = afbeelding, keuzes = keuzes)als antwoord == "Ja": print "Ja"anders: print "Nee" 10 van 10 We hebben hier de belangrijkste "eenvoudige" EasyGUI-opties besproken om u op weg te helpen, maar er zijn nog veel meer boxopties en voorbeelden beschikbaar, afhankelijk van hoeveel u wilt leren en wat uw project vereist. Wachtwoordvakken, codevakken en zelfs bestandsvakken zijn beschikbaar om er een paar te noemen. Het is een zeer veelzijdige bibliotheek die gemakkelijk binnen enkele minuten kan worden opgehaald, met een aantal geweldige hardware-besturingsmogelijkheden. Als u wilt leren hoe u andere dingen, zoals Java, HTML of meer, kunt coderen, ziet u de beste online coderingsbronnen die beschikbaar zijn. Importeer EasyGUI
Basic Message Box
Doorgaan of Annuleer Box
Custom Button Box
Keuzebox
Data Entry Box
Afbeeldingen toevoegen
Meer geavanceerde functies