Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Votre première fenêtre Tkinter

Introduction à Tkinter Positionnement avec la méthode place


Accès rapide :
Première approche basique
Second approche orientée objet

Nous allons maintenant voir comment afficher votre première fenêtre avec Tkinter. Deux styles de codage assez distincts peuvent être utilisés pour arriver à cet objectif.

Dans les deux cas, vous allez vous appuyer sur le type Tk pour représenter une fenêtre graphique.

Première approche basique

Notre fenêtre contiendra un label et un bouton et elle sera retaillée au plus juste autour de ces deux éléments. L'appuie sur le bouton produira un événement qui redirigera automatiquement l'exécution du programme au niveau de la fonction do_something.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
#!/usr/bin/python3

from tkinter import Tk, Button, Label


# On définit un gestionnaire d'événements pour le bouton ci-dessous.
def do_something():
    print("Clicked")


# On instancie notre fenêtre graphique
window = Tk()

# On injecte un premier label dans la fenêtre
label = Label(window, text="Hello Tk")
label.pack()

# Puis, on injecte un bouton dans la fenêtre. Il est connecté à la
# fonction do_something qui déclenchera au clic sur le bouton.
button = Button(window, text="Push me !", command=do_something)
button.pack()

window.mainloop()
Une première interface graphique Tk
N'oubliez pas l'appel à window.mainloop() : c'est ce qui permet d'amorcer la gestion des événements au sein de votre fenêtre.

Voici le résultat produit par cette application. Pensez à cliquer sur le bouton afin de déclencher le gestionnaire d'événements.

Second approche orientée objet

Cette seconde manière de faire utilise les concepts de programmation orientés objet. Une classe de fenêtre est produite par héritage. Personnellement, je privilégie cette approche.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
#!/usr/bin/python3

from tkinter import Tk, Button, Label


# On définit une classe qui dérive de la classe Tk (la classe de fenêtre).
class MyWindow(Tk):

    def __init__(self):
        # On appelle le constructeur parent
        super().__init__()

        # On injecte un premier label dans la fenêtre
        label = Label(self, text="Hello Tk")
        label.pack()

        # Puis, on injecte un bouton dans la fenêtre. En cas de clic, il est
        # connecté au gestionnaire d'événements do_something.
        button = Button(self, text="Push me !", command=self.do_something)
        button.pack()

        # On dimensionne la fenêtre (300 pixels de large par 200 de haut).
        self.geometry("300x200")

        # On ajoute un titre à la fenêtre
        self.title("Hello")

    # Le gestionnaire d'événement pour notre bouton.
    def do_something(self):
        print("Button clicked!")


# On crée notre fenêtre et on l'affiche
window = MyWindow()
window.mainloop()
Une seconde interface graphique Tk
avec cette approche, self représente l'objet courant, donc la fenêtre.

Dans la suite de ce tutoriel Tkinter, nous privilégierons l'approche orientée objet.



Introduction à Tkinter Positionnement avec la méthode place