Lycée Louis Vincent SEANCE 8 Python Interfaces graphiques Lundi 16 décembre 2013 Contenu de la séance 8 : La programmation objet Les widgets. Les labels. Les zones de.
Download
Report
Transcript Lycée Louis Vincent SEANCE 8 Python Interfaces graphiques Lundi 16 décembre 2013 Contenu de la séance 8 : La programmation objet Les widgets. Les labels. Les zones de.
Lycée Louis Vincent
SEANCE 8
Python
Interfaces graphiques
Lundi 16 décembre 2013
1
Contenu de la séance 8 :
La programmation objet
Les widgets.
Les labels.
Les zones de saisie.
Les boutons.
Lundi 16 décembre 2013
2
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
3
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/TkInter
http://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
4
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
5
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
6
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.py
from 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
7
Les zones de saisie : classe Entry
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
Lundi 16 décembre 2013
8
La classe Entry :
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()
Lundi 16 décembre 2013
9
Les boutons : classe Button
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
Lundi 16 décembre 2013
10
La classe Button :
from tkinter import *
#FONCTIONS
def plus():
global nb
nb=nb+1
l.config(text=nb)
l.pack()
#PROGRAMME PRINICIPAL
fen=Tk()
nb=0
l=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
Lundi 16 décembre 2013
11