Aller au contenu

Module Fenêtre - Window

Vous êtes ici dans la documentation du module fenêtre - window du robot.

Ce module sert à gérer l’interface graphique (fenêtre), cette interface graphique servira d’intermédiaire entre l’utilisateur et le robot ainsi que ses autres modules.

En effet, ce module est le module le plus important, car c’est lui qui vous permettra d’interagir avec le robot en déclenchant des comportements selon vos actions (appui sur un bouton pour démarrer une discussion avec le robot…).

Warning

Avant d’utiliser un module, il faudra toujours le lancer sinon il vous sera impossible d’utiliser le module et les méthodes lier à celui-ci.

Demmarer le module fenetre

robot.initialiser_module_fenetre()

ou alors

robot.init_window_module()

À partir de ce moment, les objets fenetre et window sont initialisés dans le robot, ils sont donc utilisables.

Note

La methode initialiser_module_fenetre() (fr) - init_window_module() (en) initialise les objets fenetre et window dans le robot.

Ouvrir une fenêtre

La première chose que vous allez vouloir faire avec la fenêtre, c'est de l’ouvrir, en effet tant que vous n’ouvrez pas la fenêtre, celle-ci est inutilisable.

Pour cela, on va donc faire appelle à la méthode ouvrir_fenetre(longueur: int, hauteur: int) (fr) - open_window(width : int, height : int) (en) en lui passant en paramètre la longueur et la largeur de la fenêtre.

Ouvrir la fenetre

l = 1200
h = 900
robot.fenetre.ouvir_fenetre(l, h)

ou alors

w = 1200
h = 900
robot.window.open_window(w, h)

Note

Si vous ne donnez pas de paramètre à la méthode, alors la fenêtre s’ouvrira avec une taille de 800 sur 600.

Fermer la fenêtre

Pour fermer la fenêtre, il suffit d’appeler la méthode fermer_fenetre() (fr) - close_window() (en).

Fermer la fenetre

robot.fenetre.fermer_fenetre()

ou alors

robot.window.close_window()

Actualiser l’affichage

À chaque fois qu'une modification est faite (ex: un changement de titre, un nouveau bouton, un texte à afficher), il est important de mettre à jour l'affichage de la fenêtre.
On utilise la méthode actualiser_affichage() (fr) - refresh_display() (en).

Idéalement, cette méthode est appelée dans une boucle afin de garder l'affichage à jour.

Actualiser l'affichage

robot.fenetre.actualiser_affichage()

ou alors

robot.window.refresh_display()

Passer la fenêtre en plein écran

Pour passer la fenêtre en plein écran, il suffit d’appeler la méthode plein_ecran(changer : bool) (fr) - full_screen(change : bool) (en).

Plein écran

robot.fenetre.plein_ecran(True) # pour passer en plein écran
robot.fenetre.plein_ecran(False) # pour sortir du plein écran

ou alors

robot.window.full_screen(True) # for full screen
robot.window.full_screen(False) # for exit full screen

Modifier le titre de la fenêtre

Pour modifier le titre de la fenêtre, il suffit d’appeler la méthode changer_titre(titre : str) (fr) - change_title(title : str) (en).

Modifier le titre

titre = "Nouveau titre"
robot.fenetre.changer_titre(titre)

ou alors

title = "New title"
robot.window.change_title(title)

Changer la couleur de fond de la fenêtre

Pour changer la couleur de fond de la fenêtre, il suffit d’appeler la méthode changer_couleur_fond(couleur : str) (fr) - change_background_color(color : str) (en).

Changer la couleur de fond

couleur = (255, 255, 255) # blanc
robot.fenetre.changer_couleur_fond(couleur)

ou alors

color = (0, 0, 0) # black
robot.window.change_background_color(color)

Note

Voir la documentation sur les couleurs pour plus d'informations.

Afficher le fond de la fenêtre

Pour afficher le fond de la fenêtre, il suffit d’appeler la méthode afficher_fond() (fr) - display_background() (en).

Afficher le fond

robot.fenetre.afficher_fond()

ou alors

robot.window.display_background()

Note

Cette méthode est utile si vous avez modifié la couleur de fond de la fenêtre et que vous voulez voir le changement.

Exemple complet 1

from pybot import Robot, Couleur

robot = Robot()
robot.initialiser_module_fenetre()

robot.fenetre.ouvrir_fenetre(1200, 900)
robot.fenetre.changer_titre("Nouveau titre")
robot.fenetre.changer_couleur_fond(Couleur.BLANC)
robot.fenetre.afficher_fond()
robot.ajouter_evenement("echap", "sortir")

while robot.est_actif() :
    evenement = robot.verifier_evenements()
    if "sortir" in evenement:
        robot.desactiver()
        break # Sortie de la boucle
    robot.fenetre.actualiser_affichage()

Dessiner un rectangle

Pour dessiner un rectangle, il suffit d’appeler la méthode dessiner_rectangle(longueur: int, hauteur: int, position_x: int, position_y: int, couleur: Couleur) (fr) - draw_rectangle(width: int, height: int, position_x: int, position_y: int, color: Couleur) (en).

Warning

La position (x, y) est le coin en haut à gauche du rectangle.

Dessiner un rectangle

l = 100
h = 50
x = 100
y = 100
couleur = Couleur.BLEU
robot.fenetre.dessiner_rectangle(l, h, x, y, couleur)

ou alors

w = 100
h = 50
x = 100
y = 100
color = Couleur.BLEU
robot.window.draw_rectangle(w, h, x, y, color)

Note

Voir la documentation sur les positions pour plus d'informations.

Afficher un texte

Pour afficher une ligne de texte, il suffit d’appeler la méthode afficher_texte(texte : str, position_x: int, position_y: int, taille: int, couleur: Couleur) (fr) -
display_text(text : str, position_x: int, position_y: int, size: int, color: Couleur) (en).

Warning

La position (x, y) est le coin en haut à gauche du texte.

Afficher un texte

texte = "Bonjour"
x = 100
y = 100
taille = 24
couleur = Couleur.NOIR
robot.fenetre.afficher_texte(texte, x, y, taille, couleur)

ou alors

text = "Hello"
x = 100
y = 100
size = 24
color = Couleur.NOIR
robot.window.display_text(text, x, y, size, color)

Afficher une image

Pour afficher une image, il suffit d’appeler la méthode afficher_image(chemin_fichier : str, position_x: int, position_y: int) (fr) -
display_image(file_path : str, position_x: int, position_y: int) (en).

Warning

La position (x, y) est le coin en haut à gauche de l'image.

Afficher une image

chemin = "/images/photo.png"
x = 100
y = 100
robot.fenetre.afficher_image(chemin, x, y)

ou alors

path = "/images/picture.png"
x = 100
y = 100
robot.window.display_image(path, x, y)

Note

Le module Caméra - Camera permet de prendre des photos et de les enregistrer dans un fichier.

Exemple complet 2

from pybot import Robot, Couleur

robot = Robot()
robot.initialiser_module_fenetre()

robot.fenetre.ouvrir_fenetre(1200, 900)
robot.fenetre.changer_titre("Nouveau titre")
robot.fenetre.changer_couleur_fond(Couleur.BLANC)
robot.fenetre.afficher_fond()
robot.ajouter_evenement("echap", "sortir")

robot.fenetre.dessiner_rectangle(100, 50, 100, 100, Couleur.BLEU_CIEL)
robot.fenetre.afficher_texte("Bonjour", 100, 100, 24, Couleur.NOIR)
robot.fenetre.afficher_image("images/photo.png", 100, 100) # à remplacer par le chemin de votre image

while robot.est_actif() :
    evenement = robot.verifier_evenements()
    if "sortir" in evenement:
        robot.desactiver()
    robot.fenetre.actualiser_affichage()

Creer un bouton

Pour créer un bouton, il suffit d’appeler la méthode creer_bouton(longueur: int, hauteur: int, position_x: int, position_y: int, couleur: Couleur) (fr) -
create_button(width: int, height: int, position_x: int, position_y: int, color: Couleur) (en).

Warning

La position (x, y) est le coin en haut à gauche du bouton.

Créer un bouton

l = 100
h = 50
x = 100
y = 100
couleur = Couleur.BLEU
bouton = robot.fenetre.creer_bouton(l, h, x, y, couleur)

ou alors

w = 100
h = 50
x = 100
y = 100
color = Couleur.BLEU
button = robot.window.create_button(w, h, x, y, color)

Note

Voir la documentation sur les boutons pour plus d'informations. Regarder la documentation sur les attributs du robot pour plus d'informations.

Creer une zone de texte

Pour créer une zone de texte, il suffit d’appeler la méthode creer_zone_de_texte(longueur: int, hauteur: int, position_x: int, position_y: int, couleur: Couleur) (fr) - create_text_area(width: int, height: int, position_x: int, position_y: int, color: Couleur) (en).

Warning

La position (x, y) est le coin en haut à gauche de la zone de texte.

Créer une zone de texte

l = 100
h = 50
x = 100
y = 100
couleur = Couleur.BLEU
zone_texte = robot.fenetre.creer_zone_de_texte(l, h, x, y, couleur)

ou alors

w = 100
h = 50
x = 100
y = 100
color = Couleur.BLEU
text_area = robot.window.create_text_area(w, h, x, y, color)

Note

Voir la documentation sur les zones de texte pour plus d'informations. Regarder la documentation sur les attributs du robot pour plus d'informations.

Afficher carte détectée

Une fois une carte détectée, il est possible de l'afficher sur la fenêtre. Pour afficher une carte détectée, il suffit d’appeler la méthode afficher_carte_detectee(self, detected_card: MatLike, position_x: int, position_y: int) (fr)
- display_detected_card(self, detected_card: MatLike, position_x: int, position_y: int) (en).

Warning

La position (x, y) est le coin en haut à gauche de l'image.

Afficher une carte détectée

carte = robot.utilisateur.detecter_carte()
x = 100
y = 100
robot.fenetre.afficher_carte_detectee(carte, x, y)

ou alors

card = robot.user.detect_card()
x = 100
y = 100
robot.window.display_detected_card(card, x, y)

Voici où trouver la documentation sur la méthode detecter_carte() (fr) - detect_card() (en).

Obtenir l'image de l'émotion

Le module IA - AI permet de donner des "émotions" au robot.
Pour afficher l'image de l'émotion, il faut appeler la méthode obtenir_image_emotion(emotion : str) (fr) - get_emotion_image(emotion : str) (en).

Et ensuite, afficher l'image avec la méthode afficher_image(chemin : str, position_x: int, position_y: int) (fr) - display_image(path : str, position_x: int, position_y: int) (en)

Obtenir l'image de l'émotion

emotion = "heureux"
chemin = robot.fenetre.obtenir_image_emotion(emotion)
x = 100
y = 100
robot.fenetre.afficher_image(chemin, x, y)

ou alors

emotion = "heureux"
path = robot.window.get_emotion_image(emotion)
x = 100
y = 100
robot.window.display_image(path, x, y)

Info

Les images des emotions sont stockées dans le dossier images/emotions.
Elles peuvent être remplacées par des images personnalisées.
Les images de bases font du 108x108 pixels.
La taille de l'image peut changer si vous la remplacez.
Mais essayez de garder la meme taille entre toute les images pour un meilleur rendu.

Note

Voir la documentation sur les émotions pour plus d'informations. IA - AI