Tkinter

Un article de Wikipédia, l'encyclopédie libre.
Tkinter

Description de cette image, également commentée ci-après
Hello World en Python et Tkinter.
Informations
Développé par John OusterhoutVoir et modifier les données sur Wikidata
Écrit en PythonVoir et modifier les données sur Wikidata
Type Bibliothèque logicielle
Bibliothèque logicielle Python (d)Voir et modifier les données sur Wikidata
Licence Licence BSDVoir et modifier les données sur Wikidata
Site web wiki.python.org/moin/TkInterVoir et modifier les données sur Wikidata

Tkinter (de l'anglais Tool kit interface) est la bibliothèque graphique libre d'origine pour le langage Python, permettant la création d'interfaces graphiques. Elle vient d'une adaptation de la bibliothèque graphique Tk écrite pour Tcl.

Exemple[modifier | modifier le code]

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# on commence toujours par importer le module tkinter
# ici on lui donne le surnom (alias) de tk

from tkinter import *

# il suffit alors de déclarer l'objet Tk() qui deviendra la fenêtre principale

fenetre = Tk()

# on crée ensuite un objet Label() rattaché à fenetre pour afficher du texte non éditable
# on profite du constructeur de l'objet pour définir un texte "Hello World" dans la foulée (on peut faire autrement)

texte = Label ( fenetre, text="Hello World" )

# l'objet Label() nommé texte est ensuite rendu visible dans fenetre grâce à pack()

texte.pack()

# pour finir, on lance la boucle programme

fenetre.mainloop()

Liste des widgets Tkinter[modifier | modifier le code]

Voici une liste des widgets utilisable dans Tkinter[1](pour python 3, car dans python 2, il faut importer le module "Tkinter", et non pas "tkinter")
Nom Code
Frame
from tkinter import *
app=Tk()
frame=Frame(app)
frame.pack()
app.mainloop()
Bouton
from tkinter import *
app=Tk()
Bouton=Button(app,text="Bouton")
Bouton.pack()
app.mainloop()
Entrée de texte
from tkinter import *
app=Tk()
Entree_de_texte=Entry(app,width=50)
Entree_de_texte.pack()
app.mainloop()
Zone de texte
from tkinter import*
app=Tk()
Zone_de_texte=Text(app,width=50,height=50)
Zone_de_texte.pack()
app.mainloop()
Bouton de sélection
from tkinter import*
app=Tk()
Bouton_de_selection=Checkbutton(app)
Bouton_de_selection.pack()
app.mainloop()
Bouton radio
from tkinter import*
app=Tk()
Bouton_radio= Radiobutton(app,text="Bouton radio")
Bouton_radio.pack()
app.mainloop()
Label
from tkinter import*
app=Tk()
label=Label(app)
label.pack()
app.mainloop()
Menu
from tkinter import*
app=Tk()
menu= Menu(app)
#Pour ajouter une commande :
def Sauvegarder():
    pass
menu.add_command(label="Sauvegarder",command=Sauvegarder)
app.config(menu=menu)
app.mainloop()
Boite de sélection (utilise ttk)
from tkinter import*
from tkinter import ttk
app=Tk()
Options=['Homme','Femme','Enfant']
Boite_de_selection=ttk.Combobox(app,values=Options)
Boite_de_selection.pack()
app.mainloop()
Liste
from tkinter import*
app=Tk()
liste=Listbox(app)
#Pour ajouter un élément :
liste.insert(1,"Emmental")
liste.pack()
app.mainloop()
Bouton de menu
from tkinter import*
app=Tk()
Bouton_de_menu=Menubutton(app)
#Pour ajouter un élément :
Var1=IntVar()
Menu1=Menu(Bouton_de_menu, tearoff=0)
Menu1.add_checkbutton(label="Pizza",variable=Var1)
Bouton_de_menu['menu']=Menu1
Bouton_de_menu.pack()
app.mainloop()
Canvas
from tkinter import*
app=Tk()
canvas=Canvas(app,width=500,height=250)
canvas.pack()
app.mainloop()
Scale
from tkinter import*
app=Tk()
scale=Scale(app,from_=0,to=50)
scale.pack()
app.mainloop()
Barre de défilement
from tkinter import *
app = Tk() 
Barre_de_defilement = Scrollbar(app) 
Barre_de_defilement.pack(side = RIGHT, fill = Y) 
Liste = Listbox(app, yscrollcommand = Barre_de_defilement.set )  
for ligne in range(1, 100): 
    Liste.insert(END, "Number " + str(ligne)) 
Liste.pack(side = LEFT, fill = BOTH )    
Barre_de_defilement.config(command = Liste.yview) 
app.mainloop()
Bouton avec commande
from tkinter import *
app = Tk()
def commande():
    print("commande du bouton")
bouton_avec_commande = Button(app, text="Bouton avec commande", command = commande) # ne mettez pas de parenthèses après le nom d'une commande sur un widget tkinter, car sinon, python exécute la fonction dès que le widget est créé.
bouton_avec_commande.pack()
app.mainloop()

Notes et références[modifier | modifier le code]

  1. (en-US) « List of Tkinter Widgets - with examples », sur CodersLegacy (consulté le )

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Lien externe[modifier | modifier le code]