SEANCE 8

11
SEANCE 8 Python Interfaces graphiques Lycée Louis Vincent Lundi 16 décembre 2013 1

description

SEANCE 8. Python Interfaces graphiques. La programmation objet Les widgets . Les labels. Les zones de saisie. Les boutons. Contenu de la séance 8 :. Lundi 16 décembre 2013. Elles permettent de rendre les programmes plus conviviaux. - PowerPoint PPT Presentation

Transcript of SEANCE 8

Page 1: SEANCE 8

1

SEANCE 8

PythonInterfaces graphiques

Lycée Louis Vincent

Lundi 16 décembre 2013

Page 2: SEANCE 8

2

Contenu de la séance 8 :

Lundi 16 décembre 2013

La programmation objet

Les widgets.

Les labels.

Les zones de saisie.

Les boutons.

Page 3: SEANCE 8

3

Interfaces graphiques

Elles permettent de rendre les programmes plus conviviaux.

Une interface graphique est constituée de composants (ou encore widgets) qui sont la source d’évènements.◦ Le déroulement d’un programme avec interface graphique

est différent des programmes vus jusqu’à présent.◦ Composants ou widgets : ce sont des boutons, zones de

saisie, zones de dessin, labels, listes déroulantes, boîtes à cocher, bouton radio …

◦ Un évènement : clic sur un bouton de la souris, saisie d’un texte, toucher Entrée, flèches du clavier …

Lundi 16 décembre 2013

Page 4: SEANCE 8

4

Interfaces graphiques et Python

Plusieurs librairies (modules) en python sont disponibles pour réaliser des interfaces graphiques :◦ tkinter (python version 3) Tkinter (version 2)◦ wxPython

Plus complexe et complet que tkinter◦ pyQT, pyGTK◦ Pygame

http://wiki.python.org/moin/TkInterhttp://docs.python.org/3.2/library/tkinter.html

http://www.pythonware.com/library/tkinter/introduction/http://www.pythonware.com/media/data/an-introduction-to-tkinter.pdf

Lundi 16 décembre 2013

Page 5: SEANCE 8

5

Les widgets

A chaque widget correspond une classe

Instanciation de l’objet avec une méthode constructeur (commence par une majuscule et porte le nom de la classe du widget, plusieurs existent par widget)

Ajout de l’objet à l’interface (ie à la fenêtre racine) avec la méthode pack

Des méthodes communes à tous les widgets : pack(), grid(),place(),config(), ...

Lundi 16 décembre 2013

Page 6: SEANCE 8

6

La fenêtre racine

Squelette du programme construisant une interface graphique (IG)From tkinter import *# pour la version 3 de Python # et Tkinter pour la version 2

fen=Tk() # création de la fenêtre principale et affectation de l’instance dans la variable fen

Ajout des différents widgets

fen.mainloop() #Affiche la fenêtre pricipale et provoque le démarrage du réceptionnaire d'événement qui se met à l'écoute des événements pouvant survenir dans la fenêtre issus de différents widgets

Lundi 16 décembre 2013

Page 7: SEANCE 8

7

Les labels : classe Label

Ils sont utilisés pour afficher des textes et des images.

Quelques propriétés pouvant être initialisées à l’appel du constructeur Label (…) : text=" texte du balel", bg=" couleur de fond", fb =" couleur du texte",db=bordure, width =largeur, height=hauteur,...

Exemple : exLabel_V3.pyfrom tkinter import *fen=Tk()obj=Label(text= "zone de txt",bg= "blue",fg= "yellow",bd=3)obj.pack()obj2=Label(bitmap= "question",bg= "red",fg= "grey",bd=5)obj2.pack()fen.mainloop()

Lundi 16 décembre 2013

Page 8: SEANCE 8

8

Les zones de saisie : classe Entry

Lundi 16 décembre 2013

Elles sont utilisées pour la saisie de textes par l’utilisateur.

Quelques propriétés pouvant être initialisées à l’appel du constructeur Entry (…) : bg=" couleur de fond", fb=« couleur du texte",db=bordure, width =largeur en caractères de la zone de saisie …

Une méthode :◦ get() : permet d’obtenir le contenu de la zone de saisie, renvoie une

chaîne

Exemple : exEntry_V3.py

Page 9: SEANCE 8

9

La classe Entry :

Lundi 16 décembre 2013

from tkinter import *

fen=Tk()obj=Label(text="zone de saisie :")obj.pack()obj2=Entry(bg="grey",fg="blue",width=55)

obj2.insert(0,"Le chat est dans le grenier")ch=obj2.get()print (ch)

obj2.insert(16," le jardin ou")ch=obj2.get()print (ch)

obj2.delete(27,55)obj2.pack()ch=obj2.get()print (ch)

fen.mainloop()

Page 10: SEANCE 8

10

Les boutons : classe Button

Lundi 16 décembre 2013

ils sont utilisés pour insérer des boutons dans une interface graphique. Un bouton est relié à une action !

Quelques propriétés pouvant être initialisées à l’appel du constructeur Button (…) : text=" texte du bouton", bg=" couleur de bouton", fb=" couleur du texte",image (image sur le bouton), command =pour associer une fonction au bouton

Une méthode :◦ invoke() : permet de rappeler la commande associée au bouton

Exemple : exButton_V3.py

Page 11: SEANCE 8

11

La classe Button :

Lundi 16 décembre 2013

from tkinter import *

#FONCTIONSdef plus():

global nbnb=nb+1l.config(text=nb)l.pack()

#PROGRAMME PRINICIPAL

fen=Tk()nb=0l=Label(text=nb)l.pack()b=Button(text= "Incrémenter",command=plus) b.pack()

fen.mainloop() #Affiche la fenêtre pricipale et provoque le démarrage du gestionnaire