0% ont trouvé ce document utile (0 vote)
2 vues18 pages

Programmation GUI avec Python Tkinter

info 2

Transféré par

Bil
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)
2 vues18 pages

Programmation GUI avec Python Tkinter

info 2

Transféré par

Bil
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

Programmation pour les Sciences 3

L2 – SPI + Mécanique
Introduction

En L1-S1 (PGS1)

Programmation (Python) « en mode texte »

Concepts élémentaires du langage : variables, boucles, fonctions, . . .

Puis, en L1-S2 (PGS2)


Programmation Objet :

Rappel : Classes, données + méthodes


Cette année (L2-S1 - PGS3)

Dans les applications avancées, ex :


recherche -modélisation, simulation
industrie automobile – aeronotique
biologie-santé, modèles moléculaires, ADN
économie-finances

l'aspect visuel peut être très valorisant

→ Interfaces graphiques (Graphical User Interfaces – GUI)

Avantages
accès-interprétation visuels aux résultats

 meilleure performance de programmation, réglage des paramètres


De quoi s'agit-il :
Application des compétences acquises pour l'exploitation de

« bibliothèques » de composants graphiques


↔ classes d’objets (attributs + méthodes)

ex pour python
wxPython,
pyQT
pyGTK,
tkinter

Rque : un des intérêts d'une bibliothèque

→ sa portabilité sur plusieurs OS (ex Windows, Linus, Android,...)


Choix pour ce cours : tkinter (Tk Interface)

module Python pour créer des interfaces graphiques (GUI : graphical user interface)

composants graphiques

fenêtre (classe Tk)

bouton (classe Button)

case à cocher (classe Checkbutton)

étiquette (classe Label)

zone de texte simple (classe Entry)

menu (classe Menu)

zone graphique (classe Canvas)

cadre (classe Frame)

...
ex de logiciels développé en Tkinter :
PyMOL (logiciel libre de visualisation de structures chimiques en 3D)
Interface Graphique

fenêtre principale + autres composants tels que :


label pour afficher un texte
zone de saisie de texte (ex login)
boutons pour lancer des actions
...etc
Modèle de programme

1
Initialisation
chargement des modules nécessires

2
Mise en place des composants de l'interface

3
Boucle d'écoute d'événements (souris, clavier, ...)
interactivité avec l’utilisateur: gestion réactions aux évnmts

4
Fin
Exemple1 : interface simple
Fenêtre principale (ex1_1)

from tkinter import *

fen1 = Tk()

[Link]()

Rappel
modules python : scripts (suites d'instructions),
définitions de fonctions,
des classes d’objets

pour utiliser un module, il faut le charger (l'importer)

from tkinter import *

→ importer toutes les classes contenues dans le module tkinter


fen1 = Tk()

→ crée un objet (qui s'appelle) fen1 de la classe Tk()

Rque
la classe Tk(), de la bibliothèque tkinter, contient tout ce qu’il faut pour créer
différents types de fenêtres, de tailles ou de couleurs diverses, avec ou sans barre de
menus, etc...

[Link]()

→ boucle d'écoute d'événements (souris, clavier, . . .) + réactions associées :


interactivité avec l’utilisateur
jusqu'à la fin du programme
Ajout d'un texte (ex1_2)

tex1 = Label(fen1, text='Bonjour tout le monde !', fg='red')

[Link]()

Création

tex1 = Label(fen1, text='Bonjour tout le monde !', fg='red')

→ crée un objet (text1) à partir de la classe Label(), zone de texte statique


arguments : parent, texte, couleur

Placement

[Link]()

→ applique la méthode pack() à l'objet text1 (placement de l'objet dans la fenêtre)


Ajout d'un bouton (ex1_3)

bou1 = Button(fen1, text='Quitter', command = [Link])

[Link]()

Création

bou1 = Button(fen1, text='Quitter', command = [Link])

→ crée un bouton dans fen1 de label 'Quitter'


l’argument command : action si bouton cliqué

Placement

[Link]()

→ affichage bouton dans la fenêtre


Programme final (ex1_4)

from tkinter import *


fen1 = Tk()
tex1 = Label(fen1, text='Bonjour tout le monde !', fg='red')
[Link]()
bou1 = Button(fen1, text='Quitter', command = [Link])
[Link]()
[Link]()
Les classes de widgets tkinter

Boutons
Button

Checkbutton cases à cocher, multi-sélection possible

Radiobutton cases à cocher, 1 seule sélection possible

Texte
Label texte statique ou image

Entry saisie de texte sur une ligne


Menus
Listbox choix parmi une liste

Menu, menubutton menus à choix

Conteneurs
Tk fenêtre principale

Toplevel conteneur de fenêtre séparée

Frame, PanedWindow, . . .

Réglages
Scale réglage à l'aide d'un curseur

Scrollbar réglage vue horizontale/verticale

. . . etc
Chaque widget
arguments obligatoire(s) et/ou optionel(s), certaines valeurs par défaut

méthodes définir/modifier les comportements/caractéristiques

Ex : champs de saisie (Entry)


Utilisé dans les formulaires

syntaxe input = Entry(parent, options)

Options : bg : couleur d’arrière-plan

fg : couleur du texte

bd : taille des bordures (2 pixels) ...


Méthodes : delete( ) : Supprime les caractères

get() : renvoie le texte actuel ...


Association d'un événement à une action

→ à l'aide de l'argument command

ex : bou1 = Button(fen1, text='Quitter', command = [Link])

→ à l'aide de la méthode bind()

syntaxe [Link]('Return', action)

exemples :
touches clavier (ex2_1)
clics souris (ex2_2)
mouvements souris (ex2_3)
Exemples

Formulaire de login (ex3_1)


Avec mot de passe en clair (ex3_2)
Avec mot de passe caché (ex3_3)
Formatage texte (ex3_4)
Validation au clavier (ex3_5)
Validation avec un bouton (ex3_6)

Vous aimerez peut-être aussi