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.
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() |
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.
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 " ) window = MyWindow() window.mainloop() |
self
représente l'objet courant, donc la fenêtre.
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 :