cours 3 : interfaces graphiques en python

38
Cours 3 : Interfaces graphiques en Python Interfaces – p.1

Upload: others

Post on 21-Jun-2022

20 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Cours 3 : Interfaces graphiques en Python

Cours 3 : Interfaces graphiques enPython

Interfaces – p.1

Page 2: Cours 3 : Interfaces graphiques en Python

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

Page 3: Cours 3 : Interfaces graphiques en Python

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

Page 4: Cours 3 : Interfaces graphiques en Python

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

Page 5: Cours 3 : Interfaces graphiques en Python

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

Page 6: Cours 3 : Interfaces graphiques en Python

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

Page 7: Cours 3 : Interfaces graphiques en Python

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

Page 8: Cours 3 : Interfaces graphiques en Python

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

Page 9: Cours 3 : Interfaces graphiques en Python

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

Page 10: Cours 3 : Interfaces graphiques en Python

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

Page 11: Cours 3 : Interfaces graphiques en Python

Premier contact

kinter.py

Interfaces – p.4

Page 12: Cours 3 : Interfaces graphiques en Python

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

Page 13: Cours 3 : Interfaces graphiques en Python

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

Page 14: Cours 3 : Interfaces graphiques en Python

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

Page 15: Cours 3 : Interfaces graphiques en Python

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

Page 16: Cours 3 : Interfaces graphiques en Python

Deux exemples

calculette.py

clicks.py

Interfaces – p.6

Page 17: Cours 3 : Interfaces graphiques en Python

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

Page 18: Cours 3 : Interfaces graphiques en Python

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

Page 19: Cours 3 : Interfaces graphiques en Python

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

Page 20: Cours 3 : Interfaces graphiques en Python

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

Page 21: Cours 3 : Interfaces graphiques en Python

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

Page 22: Cours 3 : Interfaces graphiques en Python

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

Page 23: Cours 3 : Interfaces graphiques en Python

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

Page 24: Cours 3 : Interfaces graphiques en Python

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

Page 25: Cours 3 : Interfaces graphiques en Python

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

Page 26: Cours 3 : Interfaces graphiques en Python

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

Page 27: Cours 3 : Interfaces graphiques en Python

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

Page 28: Cours 3 : Interfaces graphiques en Python

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

Page 29: Cours 3 : Interfaces graphiques en Python

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

Page 30: Cours 3 : Interfaces graphiques en Python

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

Page 31: Cours 3 : Interfaces graphiques en Python

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

Page 32: Cours 3 : Interfaces graphiques en Python

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

Page 33: Cours 3 : Interfaces graphiques en Python

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

Page 34: Cours 3 : Interfaces graphiques en Python

Affichage d’images

image.py

Interfaces – p.10

Page 35: Cours 3 : Interfaces graphiques en Python

É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

Page 36: Cours 3 : Interfaces graphiques en Python

É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

Page 37: Cours 3 : Interfaces graphiques en Python

É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

Page 38: Cours 3 : Interfaces graphiques en Python

Animation

anim.py

Interfaces – p.12