logo
IHM avec Guizero

Guizero (Graphic User Interface) est un module Python au dessus de tkinter proposant une version simplifiée de ce dernier. La prise en main est plus rapide. Idéal pour réaliser sa première IHM (Interface Homme/Machine) en Python.

Exemple n°1 :

Ici on affiche une zone de saisie (input_box) et un bouton de validation (button1).

La fonction do_button1() est appelée quand le bouton1 est pressé, dans cet exemple elle vide la zone de saisie.

input_box.value représente le contenu de la zone de saisie.

from guizero import App, TextBox, PushButton

def do_button1():
    input_box.value = ""

app = App()
input_box = TextBox(app)
button1 = PushButton(app,text="button1", command=do_button1)

app.display()

Exemple n°2 :

Ce deuxième exemple vous présente le widget Waffle qui permet d'afficher une grille, idéal pour visualiser un 2DCode !

waffle.set_pixel(2,2,"black") permet de préciser la couleur d'un élément de la grille.

from guizero import App, Waffle

app = App()


waffle = Waffle(app,width=5,height=5)
waffle.set_pixel(2,2,"black")

app.display()

Exemple n°3 :

Ici on vous montre comment afficher ue image dans un widget Picture.

Vous devez disposer de l'image "cross.png" dans le même répertoire que votre programme.

cross.pngcross.png

from guizero import App, Picture

app = App(title="Traffic Manager 1.0")

picture = Picture(app, image="cross.png")

app.display()

Exemple n°4 :

Cet exemple vous montre l'utilisation du layout "grid". Un layout est un gestionnaire d'affichage. Il permet de gérer le positionnement des widgets dans la fenêtre de l'application les uns par rapport aux autres. Le layout "grid" permet de les positionner sur une grille virtuelle.

from guizero import App, PushButton, Text

def do_button1():
    text1.value = "Buffle"

def do_button2():
    text1.value = "Bison"

app = App(title="Traffic Manager 1.0",layout="grid")
button1 = PushButton(app,text="Animal à cornes", command=do_button1,grid=[0,1])
button2 = PushButton(app,text="Animal au poil", command=do_button2,grid=[1,1])
text1 = Text(app, text="???????????",grid=[0,3])

app.display()

Ressources :

  1. Prise en main de guizero.
  2. Utilisation des layout (Lire TOUT ce document).

CC BY SA  ( Christophe Béasse - Mai 2019 )