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