Rechercher
 

Votre première fenêtre via Tkinter

Tkinter est binding pour l'API d'interface graphique Tk, Tkinter signfiant Tk Inter(face). Cette API est assez simple à utiliser. Pour autant on peut trouver différent styles de codages. Je vous propose dans ce tuto d'afficher deux fois la même fenêtre, mais avec deux styles bien distincts.

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 (methode pack). L'appuie sur le bouton produira un événement qui redirigera automatiquement l'exécution du programme au niveau de la fonction doSomething.

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

from tkinter import Tk, Button, Label

def doSomething():
    print( "Clicked" )


window = Tk()

label = Label( window, text="Hello Tk")
label.pack()

button = Button( window, text="Push me !", command=doSomething)
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.

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 
#!/usr/bin/python3

from tkinter import *

class MyWindow(Tk):
    
    def __init__(self):
        Tk.__init__(self)
                       
        label = Label( self, text="Hello Tk")
        label.pack()

        button = Button( self, text="Push me !", command=self.doSomething)
        button.pack()

        self.geometry( "300x200" )
        self.title( "Hello" )

    def doSomething(self):
        print( "Clicked " + self.__name.get() )


window = MyWindow()
window.mainloop()
Une seconde interface graphique Tk
avec cette approche, self représente l'objet courant, donc la fenêtre.