cours 3 : interfaces graphiques en python
TRANSCRIPT
Cours 3 : Interfaces graphiques enPython
Interfaces – p.1
De quoi s’agit-il ?
Une interface graphique est un outil permettant d’interagiravec un programme informatique.
C’est un objet très complexe qui est à l’interface denombreux aspects
La plupart des langages disposent de bibliothèques pourprendre en charge une partie de cette complexité
Le programmeur doit simplement penser aux élémentsgraphiques à mettre en place (cadre, menu, boutons)
Il doit également penser au fond de son programmec’est-à-dire les traitements qu’il doit faire
OInterfaces – p.2
De quoi s’agit-il ?
Une interface graphique est un outil permettant d’interagiravec un programme informatique.
C’est un objet très complexe qui est à l’interface denombreux aspects
La plupart des langages disposent de bibliothèques pourprendre en charge une partie de cette complexité
Le programmeur doit simplement penser aux élémentsgraphiques à mettre en place (cadre, menu, boutons)
Il doit également penser au fond de son programmec’est-à-dire les traitements qu’il doit faire
OInterfaces – p.2
De quoi s’agit-il ?
Une interface graphique est un outil permettant d’interagiravec un programme informatique.
C’est un objet très complexe qui est à l’interface denombreux aspects
La plupart des langages disposent de bibliothèques pourprendre en charge une partie de cette complexité
Le programmeur doit simplement penser aux élémentsgraphiques à mettre en place (cadre, menu, boutons)
Il doit également penser au fond de son programmec’est-à-dire les traitements qu’il doit faire
OInterfaces – p.2
De quoi s’agit-il ?
Une interface graphique est un outil permettant d’interagiravec un programme informatique.
C’est un objet très complexe qui est à l’interface denombreux aspects
La plupart des langages disposent de bibliothèques pourprendre en charge une partie de cette complexité
Le programmeur doit simplement penser aux élémentsgraphiques à mettre en place (cadre, menu, boutons)
Il doit également penser au fond de son programmec’est-à-dire les traitements qu’il doit faire
OInterfaces – p.2
De quoi s’agit-il ?
Une interface graphique est un outil permettant d’interagiravec un programme informatique.
C’est un objet très complexe qui est à l’interface denombreux aspects
La plupart des langages disposent de bibliothèques pourprendre en charge une partie de cette complexité
Le programmeur doit simplement penser aux élémentsgraphiques à mettre en place (cadre, menu, boutons)
Il doit également penser au fond de son programmec’est-à-dire les traitements qu’il doit faire
Interfaces – p.2
En Python
La bibliothèque la plus simple pour créer des interfaces estTKinter
Une autre bibliothèque classique est wxPython (repose surwxWidgets)La bibliothèque wxWidgets est également disponible enC/C++
Il en existe bien d’autres : pyQT, pyGTK, ...
Dans ce cours on utilisera TKinter
OInterfaces – p.3
En Python
La bibliothèque la plus simple pour créer des interfaces estTKinter
Une autre bibliothèque classique est wxPython (repose surwxWidgets)La bibliothèque wxWidgets est également disponible enC/C++
Il en existe bien d’autres : pyQT, pyGTK, ...
Dans ce cours on utilisera TKinter
OInterfaces – p.3
En Python
La bibliothèque la plus simple pour créer des interfaces estTKinter
Une autre bibliothèque classique est wxPython (repose surwxWidgets)La bibliothèque wxWidgets est également disponible enC/C++
Il en existe bien d’autres : pyQT, pyGTK, ...
Dans ce cours on utilisera TKinter
OInterfaces – p.3
En Python
La bibliothèque la plus simple pour créer des interfaces estTKinter
Une autre bibliothèque classique est wxPython (repose surwxWidgets)La bibliothèque wxWidgets est également disponible enC/C++
Il en existe bien d’autres : pyQT, pyGTK, ...
Dans ce cours on utilisera TKinter
Interfaces – p.3
Premier contact
kinter.py
Interfaces – p.4
Programmes pilotés par les événements
Programmation classique
Programmation événements
Initialisation
Boucle principale
Terminaison
Materiel
Terminaison
Initialisation
d’evenements
RecepteurActivite
centrale
duprogramme
Evenements Messages
OInterfaces – p.5
Programmes pilotés par les événements
Programmation classique
Programmation événements
Initialisation
Boucle principale
Terminaison
Materiel
Terminaison
Initialisation
d’evenements
RecepteurActivite
centrale
duprogramme
Evenements Messages
OInterfaces – p.5
Programmes pilotés par les événements
Programmation classique
Programmation événements
Initialisation
Boucle principale
Terminaison
Materiel
Terminaison
Initialisation
d’evenements
RecepteurActivite
centrale
duprogramme
Evenements Messages
OInterfaces – p.5
Programmes pilotés par les événements
Programmation classique Programmation événements
Initialisation
Boucle principale
Terminaison
Materiel
Terminaison
Initialisation
d’evenements
RecepteurActivite
centrale
duprogramme
Evenements Messages
Interfaces – p.5
Deux exemples
calculette.py
clicks.py
Interfaces – p.6
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
OInterfaces – p.7
Quelques classes de widgets Tkinter
Button : Bouton standard exécute une fonctionquelconque
Canvas : Zone graphique
Checkbutton : Case à cocher
Entry : Zone de texte
Frame : Cadre pour placer d’autre widgets
Label : Texte quelconque (image)
Menu : Un simple menu déroulant
Interfaces – p.7
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
OInterfaces – p.8
Quelques classes de widgets Tkinter - 2
MenuButton : Bouton menu
Message : Similaire à Label, permet d’adapter la formedu texte
Radiobutton : Bouton radio classique (choix multiple)
Scale : Curseur pour modifier la valeur d’une variable
Scrollbar : Assenceur. A associer à d’autres widget(Canvas, Entry, Listbox, Text)
Text : Affichage de texte mis en page
Toplevel : Nouvelle fenêtre
Interfaces – p.8
Placement des widget
Première option simple pack
Option plus élaborée : grid
fen = Tk()
text1=Label(fen,text = "Premier champ :")text2=Label(fen,text = "Second :")ent1=Entry(fen) ; ent2=Entry(fen)
text1.grid(row = 0)text2.grid(row = 1)ent1.grid(row = 0, column = 1)ent2.grid(row = 1, column = 1)
OInterfaces – p.9
Placement des widget
Première option simple pack
Option plus élaborée : grid
fen = Tk()
text1=Label(fen,text = "Premier champ :")text2=Label(fen,text = "Second :")ent1=Entry(fen) ; ent2=Entry(fen)
text1.grid(row = 0)text2.grid(row = 1)ent1.grid(row = 0, column = 1)ent2.grid(row = 1, column = 1)
OInterfaces – p.9
Placement des widget
Première option simple pack
Option plus élaborée : grid
fen = Tk()
text1=Label(fen,text = "Premier champ :")text2=Label(fen,text = "Second :")ent1=Entry(fen) ; ent2=Entry(fen)
text1.grid(row = 0)text2.grid(row = 1)ent1.grid(row = 0, column = 1)ent2.grid(row = 1, column = 1)
Interfaces – p.9
Affichage d’images
image.py
Interfaces – p.10
Économie de variables
Il n’est pas toujours nécessaire de définir des variablespour chaque widget
Par exemple :
txt = label(fen, text = "Bonjour")txt.pack(side = LEFT)
Peut être remplacé par :
label(fen, text = "Bonjour").pack(side = LEFT)
OInterfaces – p.11
Économie de variables
Il n’est pas toujours nécessaire de définir des variablespour chaque widget
Par exemple :
txt = label(fen, text = "Bonjour")txt.pack(side = LEFT)
Peut être remplacé par :
label(fen, text = "Bonjour").pack(side = LEFT)
OInterfaces – p.11
Économie de variables
Il n’est pas toujours nécessaire de définir des variablespour chaque widget
Par exemple :
txt = label(fen, text = "Bonjour")txt.pack(side = LEFT)
Peut être remplacé par :
label(fen, text = "Bonjour").pack(side = LEFT)
Interfaces – p.11
Animation
anim.py
Interfaces – p.12