Modifications

Sauter à la navigation Sauter à la recherche
671 octets ajoutés ,  11 août 2016 à 11:02
Ligne 2 : Ligne 2 :     
== De l'écran vers le GPIO ==
 
== De l'écran vers le GPIO ==
{{traduction}}
  −
   
Voyons maintenant comment obtenir une entrée depuis l'écran tactile. Nous allons utiliser cette information pour allumer quelques LEDs sur le breadboard.
 
Voyons maintenant comment obtenir une entrée depuis l'écran tactile. Nous allons utiliser cette information pour allumer quelques LEDs sur le breadboard.
   Ligne 61 : Ligne 59 :     
== La boucle principale ==
 
== La boucle principale ==
Here we introduce [http://www.pygame.org/docs/ref/event.html pygame events]. Whenever there's some user interaction an event is generated on a queue for our program to read. It's the responsibility of our program to read this queue quickly enough to avoid events getting thrown away. Of course, we want to do this anyway to have a reasonably responsive program.
+
Nous allons faire une petit introduction a [http://www.pygame.org/docs/ref/event.html événements pygames (''pygame events'')].  
   −
We're only really interested in the {{fname|MOUSEBUTTONUP}} event, this will be added to the queue when you lift your finger off the display. We then simply get the current mouse position (this is also availble in the event itself) and determine which quadrant of the screen was selected.
+
Lorsqu'il y a une interaction utilisateur alors un événement (''event'') est généré sur une queue jusqu'à ce que notre programme le lise. Notre programme reste responsable de la lecture de cette queue et il doit le faire suffisamment rapidement pour éviter que des événements ne soit perdu (littéralement "jeté" de la queue).
 +
 
 +
Nous devons de toute façon lire ces événement si nous voulons un programme raisonnablement réactif (aux interactions utilisateur).
 +
 
 +
Ce qui nous intéresse vraiment, c'est l'événement {{fname|MOUSEBUTTONUP}} (relâcher le bouton de la souris), Cet événement sera ajouté dans la queue lorsque vous retirerez votre doit de l'afficheur. Nous obtenons ainsi la position courante de la souris (information également disponible dans l'événement lui-même) et déterminons quel quadrant de l'écran à été sélectionné.
    
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
while True:
 
while True:
     # Scan touchscreen events
+
     # Scanner les evenement du touchscreen (ecran tactile)
 
     for event in pygame.event.get():
 
     for event in pygame.event.get():
         if(event.type is MOUSEBUTTONDOWN):
+
         if(event.type is MOUSEBUTTONDOWN): # Enfoncer bouton souris
 
             pos = pygame.mouse.get_pos()
 
             pos = pygame.mouse.get_pos()
 
             print pos
 
             print pos
         elif(event.type is MOUSEBUTTONUP):
+
         elif(event.type is MOUSEBUTTONUP): # Relacher bouton souris
 
             pos = pygame.mouse.get_pos()
 
             pos = pygame.mouse.get_pos()
 
             print pos
 
             print pos
             #Find which quarter of the screen we're in
+
             # Trouver dans quel quart de l'ecran nous nous trouvons
 
             x,y = pos
 
             x,y = pos
 
             if y < 120:
 
             if y < 120:
Ligne 90 : Ligne 92 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
This is certainly not a perfect UI experience: you could touch the screen on one button, drag to another and then lift off - which button did you hit? The complexities of event handling for simple things like clicking on buttons is one of the reasons why UI frameworks exist. We'll start using one in the next section.  
+
Ce n'est probablement pas une expérience Interface Utilisateur parfaite... mais vous pouvez toucher l'écran sur un bouton, trainer le doigt sur un autre bouton puis lever le doigt. A votre avis, quel sera le bouton activé?
 +
 
 +
La complexité de la gestion des événements pour une action aussi simple que cliquer sur un bouton peut vite devenir très complexe. C'est la raison pour laquelle il existe des ''UI frameworks'' (framework d'interface utilisateur).  
 +
 
 +
Nous allons en utiliser un dans la prochaine section de ce tutoriel.
    
== Exécuter le programme ==
 
== Exécuter le programme ==
Again, you can run this from the pygamelcd project:
+
Une fois encore, vous pouvez exécuter ce programme depuis le projet {{fname|pygamelcd}}:
    
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
29 917

modifications

Menu de navigation