
Quelques exemples intéressants pour vos projets.
Ici on vous montre comment afficher une image dans un widget Picture.
Vous devez disposer de l'image "cross.png" dans le même répertoire que votre programme.
cross.png
from guizero import App, Picture app = App(title="Traffic Manager 1.0") picture = Picture(app, image="cross.png") app.display()
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()
Un exemple pour raliser une animation. Regarder l'utilisation de la méthode repeat() associés au widgets .
La méthode cancel() permet de suspendre l'animation.
from guizero import App, Drawing
def do_animation():
global x,y,dx,dy
x+=dx
y+=dy
if x>290 or x<10: dx *=-1
if y>290 or y<10: dy *=-1
drawing.clear()
drawing.rectangle(x, y, x+10, y+10, color="blue")
app = App()
x,y=100,50
dx,dy=5,5
drawing = Drawing(app,height=300, width=300)
drawing.bg="grey"
app.repeat(20,do_animation)
app.display()
Un exemple sur la gestion des évènements souris.
from guizero import App, Drawing
def do_this(event_data):
print("mouse pressed "+event_data.x + " : " + event_data.y )
app = App()
drawing = Drawing(app,height=300, width=300)
drawing.bg="grey"
drawing.rectangle(50,50,90,90, color="blue")
app.when_clicked = do_this
app.display()
Un exemple sur la gestion des évènements clavier.
from guizero import App, TextBox
def do_this(event_data):
print("key pressed : "+ event_data.key)
app = App()
text = Text(app, text="Test clavier")
app.when_key_pressed = do_this
app.display()
Un exemple plus complets sur la gestion des évènements.
from guizero import App, Text, TextBox, Slider, Waffle, CheckBox, info
def intro():
info("events", "this is all about events")
# when return is pressed back the test red and then turn it back to black
def key_pressed(e):
def text_color_black():
text_box.text_color = "black"
# return pressed
if ord(e.key) == 13:
e.widget.text_color = "red"
e.widget.after(1000, text_color_black)
def mouse_enters(e):
e.widget.bg = "lightblue"
def mouse_leaves(e):
e.widget.bg = "white"
def right_pressed():
waffle.set_pixel(0,0,"green")
def right_released():
waffle.set_pixel(0,0,"grey")
app = App()
text = Text(app, text="events")
slider = Slider(app)
text_box = TextBox(app)
check = CheckBox(app, "check")
waffle = Waffle(app)
# when clicked
text.when_clicked = intro
# when key pressed
text_box.when_key_pressed = key_pressed
# highlight widget when move over
check.when_mouse_enters = mouse_enters
check.when_mouse_leaves = mouse_leaves
slider.when_mouse_enters = mouse_enters
slider.when_mouse_leaves = mouse_leaves
text_box.when_mouse_enters = mouse_enters
text_box.when_mouse_leaves = mouse_leaves
waffle.when_mouse_enters = mouse_enters
waffle.when_mouse_leaves = mouse_leaves
# right button pressed and released
waffle.when_right_button_pressed = right_pressed
waffle.when_right_button_released = right_released
app.display()
Un exemple pour jouer des sons.
from playsound import playsound
from guizero import App, PushButton
def do_play():
playsound('splash.wav',False)
app = App(title="sound player")
button1 = PushButton(app, command=do_play)
button2 = PushButton(app, command=do_play)
app.display()
(
Christophe Béasse - Mai 2019 )