Maak eenvoudige GUI's met die Framboos Pi met behulp van EasyGUI

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

EasyGUI is 'n vinnige en eenvoudige projek om die naweek te probeer. Richard Saville

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

EasyGUI-installasie is eenvoudig met die 'apt-get install'-metode. Richard Saville

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-easygui

Hierdie 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

Die invoer van EasyGUI neem net een reël. Richard Saville

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

Die eenvoudige boodskapkassie is 'n goeie manier om met EasyGUI te begin. Richard Saville

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.py

Jy 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

Die Gaan voort / Kanselleer kan bevestiging by u projekte voeg. Richard Saville

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 by

06 van 10

Aangepaste knoppie

Met die 'knoppieboks' kan u persoonlike knoppie opsies maak. Richard Savlle

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 antwoord

07 van 10

Keusevak

Die keusevak is ideaal vir langer lyste van items. Richard Saville

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

Met die 'Multenterbox' kan u data van gebruikers insamel. Richard Saville

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 fieldValues

09 van 10

Prente byvoeg

Voeg prente by jou bokse vir 'n hele nuwe manier om die GUI te gebruik. Richard Saville

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

Jy kan nie betaalstelsels met EasyGUI maak nie, maar jy kan pret hê! Richard Saville

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.