1 / 12

SEANCE 9

SEANCE 9. Python Interfaces graphiques. La programmation objet Les CANEVAS. Méthodes Exemples Propriétés Gestion du clavier et de la souris. Exercices. Exercices. Contenu de la séance 9 :. Lundi 13 janvier 2 014.

milla
Télécharger la présentation

SEANCE 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SEANCE 9 Python Interfaces graphiques Lundi 13 janvier 2 014

  2. La programmation objet • Les CANEVAS. • Méthodes • Exemples • Propriétés • Gestion du clavier et de la souris. • Exercices. • Exercices. Contenu de la séance 9 : Lundi 13 janvier 2 014

  3. Le widget Canvas (canevas, en français) est une zone de dessin rectangulaire. Il permet de dessiner sur la fenêtre. • L'angle haut gauche du canevas est l'origine des coordonnées (x,y)=(0,0). • Quelques propriétés : • height : Hauteur Y du canvas • width  : Largeur X du canvas • bg  : Couleur de fond du canvas • bd  : Taille en pixels du bord du canvas (2 par défaut) • relief : Style de la bordure (flat (par défaut), raised, sunken, groove, ridge) Le WIDGET CANVAS

  4. Quelques méthodes : • create_arc(x1,y1,x2,y2): Pour créer un arc de cercle • create_line(x1,y1,x2,y2): Pour créer une ligne • create_oval(x1,y1,x2,y2): Pour créer un cercle ou une ellipse • create_rectangle(x1,y1,x2,y2): Pour créer un rectangle • create_text(x,y): Texte • create_image(x,y):insertion d’une image • Exemple : cf. exCanvas_V3.py et exCanvas2_V3.py • Résumé en français (pour v2.7) : http://www.jchr.be/python/tkinter.htm CANVAS

  5. fromtkinterimport * Fenetre=Tk() #La fonction Tk() du module Tkinter Fenetre.title("Mon programme en Tkinter") # Donne un titre à la fenêtre (par défaut c'est Tk) # Dans Fenetre nous allons créer un objet type Canvas qui se nomme zone_dessin # Nous donnons des valeurs aux propriétés "width", "height", "bg", "bd", "relief" zone_dessin = Canvas(Fenetre,width=494,height=494,bg='yellow',bd=3,relief="ridge") zone_dessin.pack() #Affiche le Canvas #Nous allons maintenant utiliser quelques méthodes du widget "zone_dessin" zone_dessin.create_line(0,0,499,499,fill='red',width=4) # Dessine une ligne zone_dessin.create_line(0,499,499,0,fill='red',width=4) # Dessine une ligne zone_dessin.create_rectangle(150,150,350,350) # Dessine un carré zone_dessin.create_oval(150,150,350,350,fill='blue',width=4) # Dessine un cercle # boutons_sortir est un widget de type "Button" # dont nous définissons les propriétés "text" et "command") bouton_sortir= Button(Fenetre,text="Sortir",command=Fenetre.destroy) # la commande "destroy" appliquée à la fenêtre détruit l'objet "Fenetre" et clôture le programme bouton_sortir.pack() Fenetre.mainloop() Exemple 1 :

  6. fromtkinterimport * racine=Tk() photo=PhotoImage(file= "andromede.gif") # creation d'un objet de la classe PhotoImage racine.geometry("800x600") #détermination de la taille de la fenêtre principale racine.title("800x600") fond=Canvas(racine, bg='blue',width=600,height=300) fond.pack(side=LEFT) for i inrange (1,6): fond.create_line(i*100,0,i*100,300) for i inrange (1,3): fond.create_line(0,i*100,600,i*100) img=fond.create_image(400,100,image=photo) racine.mainloop() Exemple 2 :

  7. D’autre méthodes de Canvas dans le document. http://www.pythonware.com/library/tkinter/introduction/tkinter-reference.htm Changer les propriétés

  8. place() : Place les objets à une position définie par des coordonnées. • Exemple : L=Label(text="premiere ligne" ) L.place(x=10,y=50) • Pour effacer un objet, utiliser les méthodes place_forget(),grid_forget() ou pack_forget() Méthode place ()

  9. La méthode bind () permet d’exécuter une fonction quand un événement est détecté par un composant • Obj.bind(evt, fct) • obj:identificateur de l’obejt devant intercepter l’événement evt. • fctest appelée lorsque l’événement survient, elle a un paramètre de type Event. • La fonction appelée est de la forme • deffct (evt): Gestion du clavier et souris

  10. Les types d’événements : <Key> : Intercepter la pression de n’importe quelle touche du clavier. <Button-i> : Intercepter la pression d’un bouton de la souris. i doit être remplacé par 1,2,3. <ButtonRelease-i> : Intercepter le relâchement d’un bouton de la souris. <Double-Button-i> : Intercepter la double pression d’un bouton de la souris. <Motion> : Intercepter le mouvement de la souris, dès que le curseur bouge, la fonction liée à l’événement est appelée. <Enter> : Intercepter un événement correspondant au fait que le curseur de la souris entre la zone graphique de l’objet. <Leave> : Intercepter un événement correspondant au fait que le curseur de la souris sorte la zone graphique de l’objet. Gestion du clavier et souris

  11. L’objet evt que l’on récupère lors d’une action au clavier, peut aussi renvoyer d’autres informations : Gestion du clavier :

  12. Exemple 3 : fromtkinterimport * deftouche (evt): print("Vous avez appuyé sur la touche :" ,evt.char) print("Vous avez appuyé sur la touche :" ,evt.keysym) print("Vous avez appuyé sur la touche :" ,evt.keycode) fenetre=Tk() fenetre.bind('<Key>' ,touche) fenetre.mainloop() Gestion du clavier

More Related