Die byvoeging van 'n grafiese gebruikerskoppelvlak (GUI) vir jou Raspberry Pi-projek is 'n goeie manier om 'n skerm vir data-invoer, skermknoppies vir kontroles of selfs 'n slimmer manier by te voeg om lesings van komponente soos sensors te toon.
01 van 10
Maak 'n koppelvlak vir jou projek
Daar is 'n aantal verskillende GUI-metodes beskikbaar vir die Raspberry Pi, maar die meeste het 'n steil leerkurwe.
Die Tkinter Python-koppelvlak kan die verstek 'gaan na' opsie wees, maar beginners kan sukkel met die kompleksiteit daarvan. Net so, die PyGame biblioteek bied opsies vir die maak van indrukwekkende koppelvlakke, maar kan surplus wees aan vereistes.
As jy op soek is na 'n eenvoudige en vinnige koppelvlak vir jou projek, kan EasyGUI die antwoord wees. Wat dit ontbreek in grafiese skoonheid, maak dit meer in sy eenvoud en gemak.
Hierdie artikel sal jou 'n inleiding gee aan die biblioteek, insluitend van die nuttigste opsies wat ons gevind het.
02 van 10
Laai en invoer EasyGUI
Vir hierdie artikel gebruik ons die standaard Raspbian bedryfstelsel wat hier beskikbaar is.
Die installering van die biblioteek sal vir die meeste 'n bekende proses wees, met behulp van die 'apt-get install'-metode. Jy benodig 'n internetverbinding op jou Raspberry Pi, met behulp van 'n bedrade Ethernet of WiFi-verbinding.
Open 'n terminaal venster (die ikoon van 'n swart skerm op u Pi se taakbalk) en voer die volgende opdrag in:
apt-install installasie python-easyguiHierdie opdrag sal die biblioteek aflaai en installeer vir u, en dit is al die opstelling wat u moet doen.
03 van 10
Voer EasyGUI in
EasyGUI moet ingevoer word in 'n script voordat u sy funksies kan gebruik. Dit word behaal deur 'n enkele reël bo aan jou skrif te gee en dieselfde, ongeag die EasyGUI-koppelvlakopsies wat u gebruik.
Skep 'n nuwe script deur die volgende opdrag in jou terminaal venster in te voer:
sudo nano easygui.py'N Leë skerm sal verskyn - dit is jou leë lêer (nano is bloot die naam van 'n teksredakteur). Om EasyGUI in jou skrif in te voer, voer die volgende reël in:
van easygui invoer *Ons gebruik hierdie spesifieke weergawe van die invoer om later later makliker te koder. Byvoorbeeld, wanneer u hierdie oord invoer, in plaas van om 'easygui.msgbox' te skryf, kan ons eenvoudig 'msgbox' gebruik.
Lê nou 'n paar van die sleutelkoppelvlakopsies binne EasyGUI.
04 van 10
Basiese boodskapbus
Hierdie boodskapkassie, in sy eenvoudigste vorm, gee die gebruiker 'n reël van teks en 'n enkele knoppie om te klik. Hier is 'n voorbeeld om te probeer - voer die volgende reël na jou invoerlyn in en stoor met Ctrl + X:
msgbox ("Cool box huh?", "Ek is 'n boodskapbus")Om die skrip uit te voer, gebruik die volgende opdrag:
sudo python easygui.pyJy moet 'n boodskapkassie sien, met 'Ek is 'n boodskapbus' wat in die boonste balk verskyn, en 'Cool box huh?' bokant die knoppie.
05 van 10
Gaan voort of Kanselleer blokkie
Soms moet jy die gebruiker nodig hê om 'n aksie te bevestig of te kies of jy wil voortgaan. Die boks 'ccbox' bied dieselfde reël as die basiese boodskap boks hierbo, maar bied 2 knoppies - 'Gaan voort' en 'Kanselleer'.
Hier is 'n voorbeeld van een in gebruik, met die voortgesette en kansellasie knoppies wat na die terminale druk. Jy kan die aksie verander nadat elke knoppie druk om te doen wat jy wil:
vanaf easygui invoer * invoer tyd msg = "Wil jy voortgaan?" title = "Gaan voort?" as ccbox (msg, title): # toon 'n deurlopende / kansellasie dialoog druk "Gebruiker gekies voortgaan" # Voeg ander opdragte hier hierby: # gebruiker gekies Kanselleer druk "Gebruiker kanselleer" # Voeg ander opdragte hier by06 van 10
Aangepaste knoppie
As die ingeboude boks opsies jou nie behoorlik gee wat jy nodig het nie, kan jy 'n persoonlike knoppie boks skep met die 'knoppie' -funksie.
Dit is wonderlik as jy meer opsies benodig wat bedek is, of dalk 'n aantal LED's of ander komponente met die UI beheer.
Hier is 'n voorbeeld om sous vir 'n bestelling te kies:
vanaf easygui invoer * invoer tyd msg = "Watter sous wil jy hê?" keuses = ["Mild", "Warm", "Ekstra Hot"] antwoord = knoppieboks (msg, keuses = keuses) as antwoord == "Mild": druk antwoord as antwoord == "Warm": druk antwoord as antwoord == "Extra Hot": druk antwoord07 van 10
Keusevak
Knoppies is wonderlik, maar vir lang lyste van opsies maak 'n 'keuse boks' baie sin. Probeer 10 knoppies in 'n boks aan te pas en jy sal binnekort saamstem!
In hierdie vakken word die beskikbare opsies in die rye een na die ander vertoon, met 'n boks 'OK' en 'Kanselleer' aan die kant. Hulle is redelik slim, sorteer die opsies alfabeties en laat jou toe om 'n sleutel te druk om na die eerste opsie van die brief te spring.
Hier is 'n voorbeeld wat tien name bevat, wat u kan sien in die kiekie gesorteer is.
van easygui invoer * invoer tyd msg = "Wie het die honde uitgelaat?" title = "Missing Dogs" keuses = ["Alex", "Cat", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"] keuse = keuse boks (msg, titel, keuses)08 van 10
Data Entry Box
Vorms is 'n goeie manier om data vir jou projek vas te lê, en EasyGUI het 'n 'multenterbox'-opsie waarmee jy gemerkte velde kan wys om inligting te vang.
Weereens is dit 'n geval van etiketteringsvelde en die invoer eenvoudig. Ons het 'n voorbeeld hieronder gemaak vir 'n baie eenvoudige gimnasium lidmaatskap aanmeldingsvorm.
Daar is opsies om validering en ander gevorderde funksies by te voeg, wat die EasyGUI webwerf in detail dek.
van easygui invoer * invoer tyd msg = "Lid Inligting" title = "Gym Membership Form" fieldNames = ["Voornaam", "Van", "Ouderdom", "Gewig") fieldValues = [] # die beginwaardes veldValle = multenterbox (msg, title, field Name) print fieldValues09 van 10
Prente byvoeg
Jy kan prente by jou EasyGUI-koppelvlakke voeg deur 'n baie klein hoeveelheid kode in te sluit.
Stoor 'n prent op jou Raspberry Pi in dieselfde gids as jou EasyGUI-skrif en maak 'n nota van die lêernaam en uitbreiding (byvoorbeeld, image1.png).
Kom ons gebruik die knoppie boks as 'n voorbeeld:
van easygui invoer * invoer tyd image = "RaspberryPi.jpg" msg = "Is dit 'n Framboos Pi?" keuses = ["Ja", "Nee"] antwoord = knoppie (msg, image = beeld, keuses = keuses) as antwoord == "Ja": druk "Ja" anders: druk "Nee"10 van 10
Meer gevorderde funksies
Ons het die belangrikste 'basiese' EasyGUI opsies hier behandel om jou aan die gang te kry. Daar is egter baie meer boksopsies en voorbeelde beskikbaar, afhangende van hoeveel jy wil leer, en wat jou projek benodig.
Wagwoord bokse, kode bokse, en selfs lêer bokse is beskikbaar om 'n paar te noem. Dit is 'n baie veelsydige biblioteek wat maklik in minute kan optel, met ook goeie hardeware beheer moontlikhede.
As jy wil leer hoe om ander dinge soos Java, HTML of meer te kodeer , is hier die beste aanlyn-koderingsbronne beskikbaar.