0% ont trouvé ce document utile (0 vote)
196 vues19 pages

Introduction Interfaces Graphiques en Python Avec Tkinter

Transféré par

Magalie WORA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
196 vues19 pages

Introduction Interfaces Graphiques en Python Avec Tkinter

Transféré par

Magalie WORA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 19

Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

…ntroduction interfaces graphiques en Python avec Tkinter


cours

1.7 étoiles sur 5 a partir de 6 votes.

Votez ce document: ☆☆☆☆☆

Téléchargez notre guide


Aucune avance de frais dans les zones à 100%

A
Arrttiicclle
ess ssiim
miilla
aiirre
ess
CFE.fr Télécharger
Tuto Python & Tkinter : programmation
événementielle
Tuto Python & Tkinter : personnaliser les
widgets
Tutoriel python: réaliser des graphiques
avec pyplot
Tuto Python & Tkinter : créer une fenêtre
graphique
Tuto Python & Tkinter : réaliser un
formulaire d'inscription
Python : introduction au hacking/piratage
éthique
Exercice JAVA héritage et interfaces -
primes de risque
Comment faire une introduction pour une
analyse de texte philosophique ?
Voici les différents types de graphiques
Excel
Comment faire une étude de document
en histoire terminale ES et S ?
Tutoriel Python: le module random avec
Numpy
Voici les plus fameux sites web réalisés
avec Python

1 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

IIn
nttrro
oddu
uccttiio
onn iin
ntteerrffa
acceess g
grra
apph
hiiq
quueess een
n PPyytth
hoon
naavveecc TTkkiin
ntteerr cco
ouurrss PPD
DFF

...

M
Mood
duullee TTkkiin
ntteerr

Widgets : W
Wiindow gad
dggeettss

Fonctionnalités des widgets, composants d’IHM affichage d’informations (label, message )


composants d’interaction (button, scale ) zone d’affichage, saisie de dessin, texte (canvas,
Votre Assurance Santé
entry ) conteneur de composants (frame) fenêtres secondaires de l’application (toplevel) Sérénité d'esprit au quotidien pour vous & votre
famille avec MSH International
MSH International Ouvrir

D
Dooccu
umme
ennttss ssiim
miilla
aiirre
ess

TkInter : fenêtres, conteneurs

Toplevel : fenêtre secondaire de l’application

Canvas : afficher, placer des “éléments” graphiques

Frame : surface rectangulaire pour contenir des widgets Scrollbar: barre de défilement à
associer a` un widget

Créer des interfaces Formation Python pour


graphiques en Python apprendre à créer des
avec Tkinter pas à pa… interfaces graphiques…

TkInter : gestion de textes

Label: afficher un texte, une image

Message: variante de label pour des textes plus importants


Cours sur les interfaces
Text: afficher du texte, des images graphiques en Python
avec PyQt

Python gui
programming using
tkinter and python…

Cours C++ Interfaces


Graphiques de Base Formation pour
apprendre à créer des
applications graphique…

Entry: champ de saisie de texte

Tkinter: gestion de listes


Detailed course on the
Listbox: liste d’items sélectionnables fundamentals of python
first programs
Menu: barres de menus, menus déroulants, surgissants

Apprendre à
programmer en python
pour jeunes débutants

2 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

Tkinter: composants d’interactions

Menubutton: item de sélection d’action dans un menu

Button: associer une interaction utilisateur

Checkbutton: visualiser l’état de sélection

Radiobutton: visualiser une sélection exclusive

Scale: visualiser les valeurs de variables

Etapes de programmation

EEtta
appeess d
dee p
prro
oggrra
ammm
maattiio
onn

3 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

TkInter : Structuration d’un programme

# ------- Initialisation --------------------------from Tkinter import Tk,Label,Button

# ------- Composants graphiques -------------------mw=Tk() labelHello=Label(mw,


text="Hello World !",fg="blue") buttonQuit=Button(mw, text="Goodbye World", fg="red",\
command=mw.destroy)

# ------- Positionnement des composants () ()

# ------- Definition des interactions -------------# ------- Gestion des e´vénements


-----------------mw.mainloop() exit(0)

G
Geessttiio
onnd
d’’éévvéén
neem
meen
nttss

Interaction par défaut : option command en cas de “click gauche” exécuter la fonction
associée

Paramétrer l’interaction utilisateur : méthode bind() lier (bind) l’événement au


comportement d’un composant gestion des interactions

# ------- Definition des interactions -------------def sortie(event) :

mw.destroy()

# ------- Gestion des evenements ("", sortie) mw.mainloop() exit(0)

G
Geessttiio
onnd
d’’éévvéén
neem
meen
nttss

IIn
ntteerra
accttiio
onnU
Uttiilliissa
atteeu
urr

Informations utiles a` l’interaction donnnées liées aux périphériques de l’utilisateur


argument event

4 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

données liés au composant graphique d’interaction configure() : fixer des valeurs aux
options de widget cget() : récupérer une valeur d’option

Devenir auteur, ça vous tente?

Affichage des coordonnées du pointeur de souris def mouseLocation(event):

labelPosition.configure(text = "Position X =" \

+ str(event.x) \

+ ", Y =" \

+ str(event.y))

#               print ("width")

IIn
ntteerra
accttiio
onnu
uttiilliissa
atteeu
urr

IIn
ntteerra
accttiio
onnu
uttiilliissa
atteeu
urr

IIn
ntteerra
accttiio
onn een
nttrree cco
ommp
poossa
annttss

(cf Didier Vaudène : “un abc des IHM”)

 (cf Stéphanie Jean-Daubias : “Programmation événementielle”)

Fenêtre principale

FFeen
nêêttrree p
prriin
ncciip
paallee

5 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

MainWindow: Fenêtre de base class MainWindow(Tk):

def __init__(self, width=100,height=100,bg="white"): Tk.__init__(self) self.title(’Editeur


Graphique’) self.canvas =Canvas(self,width=width-20, height=height-20, bg=bg)

self.libelle =Label(text ="Serious Game", font="Helvetica 14 bold")

() ()

Fenêtre principale

Barre de menu

MenuBar : Menu déroulant class MenuBar(Frame):

def __init__(self,boss=None):

Frame.__init__(self,borderwidth=2) mbuttonFile = Menubutton(self,text=’Fichier’)


(side=LEFT) menuFile=Menu(mbuttonFile) menuFile.add_command(label=’Effacer’,
command=boss.effacer)

menuFile.add_command(label=’Terminer’, )

mbuttonFile.configure(menu=menuFile)

Barre de menu

6 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

ScrolledCanvas : scrollbars

scv=Scrollbar(self,orient=VERTICAL, command =self.canvas.yview)

sch=Scrollbar(self,orient=HORIZONTAL, command=self.canvas.xview)

self.canvas.configure(, )

(row=0,column=1,sticky=NS) (row=1,colum=0,sticky=EW) ("", self.retailler) self.started


=False

A
Appp
plliicca
attiio
onn :: iin
niittiia
alliissa
attiio
onn

MainWindow : init (self)

=self.canvas.create_window(self.x,self.y, window=self.buttonStart)

self.xscale,self.yscale=200,200 =self.canvas.create_window(self.xscale, self.yscale,


window=self.scaleCercle)

7 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

window=self.scaleCercle)

self.xcercle,self.ycercle=100,100 self.cercle=self.canvas.create_oval(self.x, self.y,


self.x+self.xcercle, self.y+self.xcercle, fill=’yellow’, outline=’black’)

A
Appp
plliicca
attiio
onn :: iin
ntteerra
accttiio
onn

MainWindow: modification d’affichage def effacer(self): self.canvas.delete(self.cercle)

def afficher(self):

self.cercle=self.canvas.create_oval(self.x,self.y, self.x+self.xcercle, self.y+self.ycercle,


fill=’yellow’)

def updateCercle(self,x):

self.canvas.delete(self.cercle) self.xcercle, self.ycercle=int(x),int(x)


self.cercle=self.canvas.create_oval(self.x,self.y, self.x+self.xcercle, self.y+self.ycercle,
fill=’yellow’)

8 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

Projet de Labo Oscilloscope

Projet de Labo

O
Osscciillllo
osscco
oppee

Autres exemples :

Mouvement vibratoire harmonique Mouvement vibratoire harmonique

OscilloGraphe : initialisation class OscilloGraphe(Canvas):

MSH International

Votre Assurance Santé


Sérénité d'esprit au quotidien pour vous & votre famille avec MSH International

Ouvrir

def __init__(self,boss=None,larg=200,haut=150): Canvas.__init__(self)


boss.title("OscilloGraphe : version 1") self.configure(width=larg,height=haut) ,=larg,haut
self.courbe=[]

OscilloGraphe : calcul du mouvement def calculVibration(self,

9 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

frequence=1,phase=0,amplitude=10):

"calcul de l’elongation sur 1 seconde" del self.courbe[0:] pas=(self.largeur-10)/1000.

for t in range(0,1001,5):

e=amplitude*sin(2*pi*frequence*t/1000-phase) x=10+t*pas y=self.hauteur/2-


e*self.hauteur/25 self.courbe.append((x,y))

return

C
Clla
assssee O
Osscciillllo
oGGrra
apph
hee :: vveerrssiio
onn 11

PPrro
oggrra
ammm
maattiio
onnp
prro
occééd
duurra
allee PPyytth
hoon
n :: PPrro
oggrra
ammm
maattiio
onnp
prro
occééd
duurra
allee

Programmation procédurale

PPyytth
hoon
n :: PPrro
oggrra
ammm
maattiio
onnp
prro
occééd
duurra
allee

Traitements de données, sortie de programme

# Traitements x = input(’Entrez la valeur de x : ’) y = input(’Entrez la valeur de y : ’) z =


input(’Entrez la valeur de z : ’) print "Les coordonnees spheriques du point :", x,y,z print "sont :
", spherical(x,y,z)

# sortie de programme (0) 

Composition class Rectangle:

"""Un rectangle A UN coin superieur gauche""" def __init__(self, coin, largeur, hauteur):

= coin self.largeur = largeur self.hauteur = hauteur

def __repr__(self):

return "<Rectangle(’%s’,’%s’,’%s’)>" \

% (,self.largeur, self.hauteur)

… . … …

TP:

Le widget « Entry » permet de récupérer le mot de passe saisi par l’utilisateur. L’appui sur le
bouton « Valider » permet d’exécuter la fonction Verification() qui doit tester si le mot de
passe est correct. Si le mot de passe est correct une boîte de dialogue « showinfo »
apparaît, informant que le mot de passe est correct et la fenêtre Tkinter est fermée. Si le
mot de passe est incorrect une boîte de dialogue « showwarning » apparaît, informant que
le mot de passe est incorrect.

2. Compléter, dans le script mot_passe.py, la ligne 5 permettant de tester si le mot de


passe est égal à « gustave_eiffel ».
if Motdepasse.get()3. Compléter la ligne 8 permettant de fermer la fenêtre Tkinter «
Mafenetre ».

4. Compléter les lignes 15 et 16 permettant de créer la fenêtre Tkinter « Mafenetre » et de


lui donner le titre « Identification Requise ».
5. Compléter les lignes 19 et 20 afin de créer le label « Mot de passe » en respectant la
forme donnée sur l’image ci-dessus.
Label1 = Label1.pack(……………………………………………………………………………………)

6. Compléter les lignes 29 et 30 afin de créer le bouton « Valider » en respectant la


forme donnée sur l’image ci-dessus.
Bouton = (……………………………………………………………………………………)

Bouton.pack(……………………………………………………………………………………)

7. Exécuter le script et vérifier le fonctionnement du programme.


8. Commenter la ligne 24 du script. Modifier-la afin d’obtenir d’autres couleurs
d’affichage et que le mot de passe soit masqué par le caractère « _ ». 

10 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

d’affichage et que le mot de passe soit masqué par le caractère « _ ». 


Widget Canvas (caneva) et gestion des images.

Un caneva est zone rectangulaire qui est intégrée à la fenêtre graphique et destinée à
contenir des dessins, des figures complexes ou images. Il est possible d’y placer des
graphiques, du texte, d’autres

widgets ou des cadres (frames).

L’objet « Canvas » peut accepter 4 paramètres :

fen : fenêtre tkinter dans laquelle sera integré le canveva.

with : largeur du caneva.

height : hauteur du caneva.

background : couleur de fond du canvas (par défaut, la couleur de fond est grise).

Syntaxe

can=Canvas(fen,width=1000,height=1000,background='red')

Création d’un canevas intégré à la fenêtre Tkinter « fen » de dimensions 1000x1000 et de


fond d’écran rouge.

Chaque élément affiché sera représenté par un item placé dans une liste d’affichage.

La méthode create_image(x,y,anchor=…,image=…) permet d’afficher une image dans un


canevas :

- x,y : coordonnées du point par rapport auquel sera positionnée l’image.

- anchor : position de l’image par rapport aux coordonnées (x,y). L’image sera positionnée
de sorte que le point (x, y) soit situé au milieu de son bord inférieur (sud) si anchor = S. Par Cours Excel Les Introduction à
Graphiques l’algorithmique et à la
défaut anchor = CENTER et dans ce cas l’image sera positionnée de sorte que le point (x,
programmation avec…
y) soit situé au centre de l’image.

Syntaxe

Item1=can.create_image(0,100,anchor=N,image=photo) Affichage de l’image « photo »


dans le canevas « can », l’image sera positionnée de sorte que le point (0,100) soit situé au
milieu de son bord supérieur.

Exercice 5 : Afficher des images

1. Ouvrir le script aff_images.py.


Ce script permet d’afficher deux images dans un canevas. Un bouton quitter permet de Initiation à la
fermer la fenêtre Tkinter.… programmation avec BTS Arts et Industries
Python et C++ Graphiques

11 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

MSH
INTERNATIONAL

Votre
Assurance
Santé
Sérénité d'esprit au
quotidien pour vous & votre
famille avec MSH
International

Ouvrir

12 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

13 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

14 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

15 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

16 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

17 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

18 sur 19 25/12/2022, 00:57


Firefox https://www.cours-gratuit.com/cours-framework-python/introduction-int...

19 sur 19 25/12/2022, 00:57

Vous aimerez peut-être aussi