Faire des interfaces graphiques simples avec le Raspberry Pi en utilisant EasyGUI

L'ajout d'une interface utilisateur graphique (GUI) à votre projet Raspberry Pi est un excellent moyen d'inclure un écran pour la saisie de données, des boutons à l'écran pour les contrôles ou même simplement une lecture plus intelligente des composants tels que les capteurs.

01 sur 10

Faire une interface pour votre projet

EasyGUI est un projet rapide et simple à essayer ce week-end. Richard Saville

Il y a un certain nombre de méthodes GUI différentes disponibles pour le Raspberry Pi, cependant, la plupart ont une courbe d'apprentissage abrupte.

L'interface de Tkinter Python peut être l'option par défaut de 'go to', mais les débutants peuvent avoir des difficultés avec sa complexité. De même, la bibliothèque PyGame offre des options pour créer des interfaces impressionnantes mais peut être excédentaire par rapport aux exigences.

Si vous cherchez une interface simple et rapide pour votre projet, EasyGUI pourrait être la réponse. Ce qui lui manque en beauté graphique compense plus que par sa simplicité et sa facilité d'utilisation.

Cet article vous donnera une introduction à la bibliothèque, y compris certaines des options les plus utiles que nous avons trouvées.

02 sur 10

Téléchargement et importation d'EasyGUI

L'installation de EasyGUI est simple avec la méthode 'apt-get install'. Richard Saville

Pour cet article, nous utilisons le système d'exploitation Raspbian standard qui est disponible ici.

L'installation de la bibliothèque sera un processus familier pour la plupart, en utilisant la méthode 'apt-get install'. Vous aurez besoin d'une connexion Internet sur votre Raspberry Pi, en utilisant soit une connexion Ethernet filaire ou WiFi.

Ouvrez une fenêtre de terminal (l'icône d'un écran noir sur la barre des tâches de votre Pi) et entrez la commande suivante:

apt-get installer python-easygui

Cette commande va télécharger la bibliothèque et l'installer pour vous, et c'est toute la configuration que vous devez faire.

03 sur 10

Importer EasyGUI

L'importation d'EasyGUI prend juste une ligne. Richard Saville

EasyGUI doit être importé dans un script avant de pouvoir utiliser ses fonctions. Ceci est réalisé en entrant une seule ligne en haut de votre script et est la même, quelles que soient les options d'interface EasyGUI que vous utilisez.

Créez un nouveau script en entrant la commande suivante dans votre fenêtre de terminal:

sudo nano easygui.py

Un écran vide apparaîtra - c'est votre fichier vide (nano est simplement le nom d'un éditeur de texte). Pour importer EasyGUI dans votre script, entrez la ligne suivante:

de l'importation easygui *

Nous utilisons cette version spécifique de l'importation pour faciliter le codage plus tard. Par exemple, lors de l'importation de cette eway, au lieu d'avoir à écrire 'easygui.msgbox', nous pouvons simplement utiliser 'msgbox'.

Maintenant, couvrons certaines des options d'interface clés dans EasyGUI.

04 sur 10

Boîte de message de base

La boîte de message simple est un excellent moyen de commencer avec EasyGUI. Richard Saville

Cette boîte de message, dans sa forme la plus simple, donne à l'utilisateur une ligne de texte et un seul bouton à cliquer. Voici un exemple à essayer: entrez la ligne suivante après votre ligne d'importation et sauvegardez avec Ctrl + X:

msgbox ("Cool box hein?", "Je suis une boîte de message")

Pour exécuter le script, utilisez la commande suivante:

sudo python easygui.py

Vous devriez voir une boîte de message apparaître, avec «Je suis une boîte de message» écrit dans la barre du haut, et «Cool box hein? au-dessus du bouton.

05 sur 10

Continuer ou Annuler la case

La boîte Continuer / Annuler peut ajouter une confirmation à vos projets. Richard Saville

Parfois, vous aurez besoin de l'utilisateur pour confirmer une action ou choisir de continuer ou non. La boîte 'ccbox' offre la même ligne de texte que la boîte de message de base ci-dessus, mais fournit 2 boutons - 'Continuer' et 'Annuler'.

Voici un exemple d'utilisation, avec les boutons continuer et annuler l'impression sur le terminal. Vous pouvez changer l'action après chaque appui sur un bouton pour faire ce que vous voulez:

from easygui import * import time msg = "Voulez-vous continuer?" title = "Continuer?" si ccbox (msg, titre): # afficher une boîte de dialogue Continuer / Annuler imprimer "Utilisateur sélectionné continuer" # Ajouter d'autres commandes ici: # utilisateur choisi Annuler imprimer "Utilisateur annulé" # Ajouter d'autres commandes ici

06 sur 10

Boîte à boutons personnalisée

La 'boîte à boutons' vous permet de créer des options de bouton personnalisées. Richard Savlle

Si les options de boîte intégrées ne vous donnent pas tout à fait ce dont vous avez besoin, vous pouvez créer une boîte de boutons personnalisée à l'aide de la fonction 'bouton de sélection'.

C'est génial si vous avez plus d'options qui ont besoin de couverture, ou contrôlent peut-être un certain nombre de LED ou d'autres composants avec l'interface utilisateur.

Voici un exemple de sélection de sauce pour une commande:

from easygui import * import time msg = "Quelle sauce aimeriez-vous?" choices = ["Doux", "Chaud", "Extra Chaud"] reply = buttonbox (msg, choice = choix) si réponse == "Doux": réponse d'impression si réponse == "Chaud": réponse d'impression si réponse == "Extra chaud": imprimer la réponse

07 sur 10

Boîte de choix

La boîte de choix est idéale pour les listes d'articles plus longues. Richard Saville

Les boutons sont géniaux, mais pour de longues listes d'options, une «boîte à choix» a beaucoup de sens. Essayez d'ajuster 10 boutons dans une boîte et vous serez bientôt d'accord!

Ces boîtes listent les options disponibles dans les rangées les unes après les autres, avec une boîte 'OK' et 'Annuler' sur le côté. Ils sont raisonnablement intelligents, triant les options par ordre alphabétique et vous permettant également d'appuyer sur une touche pour passer à la première option de cette lettre.

Voici un exemple montrant dix noms, que vous pouvez voir ont été triés dans la capture d'écran.

from easygui import * import time msg = "Qui a laissé sortir les chiens?" title = "Missing Dogs" choix = ["Alex", "Chat", "Michael", "James", "Albert", "Phil", "Yasmin", "Frank", "Tim", "Hannah"] choix = choicebox (msg, titre, choix)

08 sur 10

Zone de saisie de données

Le 'Multenterbox' vous permet de capturer des données provenant d'utilisateurs. Richard Saville

Les formulaires sont un excellent moyen de capturer des données pour votre projet, et EasyGUI a une option 'multenterbox' qui vous permet d'afficher des champs étiquetés pour capturer des informations.

Encore une fois, il s'agit d'étiqueter les champs et de simplement saisir l'entrée. Nous avons fait un exemple ci-dessous pour un formulaire d'inscription très simple.

Il existe des options pour ajouter la validation et d'autres fonctionnalités avancées, que le site Web EasyGUI couvre en détail.

from importgui import * import time msg = "Informations sur les membres" title = "Formulaire d'adhésion à un gymnase" fieldNames = ["Prénom", "Nom", "Âge", "Poids"] fieldValues ​​= [] # les valeurs de départ fieldValues ​​= multenterbox (msg, title, fieldNames) print fieldValues

09 sur 10

Ajouter des images

Ajouter des images à vos boîtes pour une toute nouvelle façon d'utiliser l'interface graphique. Richard Saville

Vous pouvez ajouter des images à vos interfaces EasyGUI en incluant une très petite quantité de code.

Enregistrez une image sur votre Raspberry Pi dans le même répertoire que votre script EasyGUI et notez le nom et l'extension du fichier (par exemple, image1.png).

Utilisons la boîte à boutons comme exemple:

from easygui import * import time Image = "RaspberryPi.jpg" msg = "Est-ce un Raspberry Pi?" choix = ["Oui", "Non"] réponse = bouton (msg, image = image, choix = choix) si réponse == "Oui": imprimer "Oui" sinon: imprimer "Non"

10 sur 10

Plus de fonctionnalités avancées

Vous ne pouvez pas créer de système de paiement avec EasyGUI, mais vous pouvez vous amuser en faisant semblant! Richard Saville

Nous avons abordé les principales options EasyGUI de base pour vous aider à démarrer, cependant, il y a beaucoup plus d'options et d'exemples disponibles en fonction de ce que vous voulez apprendre et de ce que votre projet requiert.

Des boîtes de mot de passe, des zones de code et même des boîtes de fichiers sont disponibles pour n'en nommer que quelques-uns. Il s'agit d'une bibliothèque très polyvalente, facile à utiliser en quelques minutes, avec de très bonnes possibilités de contrôle du matériel.

Si vous souhaitez apprendre à coder d'autres choses comme Java, HTML ou plus, voici les meilleures ressources de codage en ligne disponibles.