tkinter
Widgets Ttk
Recherche…
Introduction
Exemples des différents widgets ttk. Ttk dispose d'un total de 17 widgets, dont onze existaient déjà dans tkinter (tk).
L'utilisation du module ttk donne à votre application un aspect plus moderne et amélioré.
Syntaxe
- tree = ttk.Treeview (master, ** kwargs)
Paramètres
Paramètre | La description |
---|---|
maîtriser | Les widgets tkinter existent dans une hiérarchie. À l'exception de la fenêtre racine, tous les widgets ont un parent (également appelé "master"). Lorsque le widget est ajouté à l'écran avec le pack, le lieu ou la grille, il apparaîtra dans ce widget parent |
Remarques
Ces exemples supposent que tkinter a été importé avec import tkinter as tk
(python 3) ou import Tkinter as tk
(python 2).
On suppose également que ttk a été importé avec soit from tkinter import ttk
(python 3), soit import ttk
(python 2).
Treeview: exemple de base
Ce widget est utilisé pour afficher des éléments avec une hiérarchie. Par exemple, Windows Explorer peut être reproduit de cette manière. Quelques belles tables peuvent également être réalisées à l'aide du widget treeview
.
Créer le widget
tree=ttk.Treeview(master)
Définition des colonnes
Vous pouvez définir le nombre de colonnes, leur largeur et leur largeur minimale lorsque l'utilisateur essaie de l'étirer. En définissant stretch=tk.NO
, l'utilisateur ne peut pas modifier la largeur de la colonne.
tree["columns"]=("one","two","three")
tree.column("#0", width=270, minwidth=270, stretch=tk.NO)
tree.column("one", width=150, minwidth=150, stretch=tk.NO)
tree.column("two", width=400, minwidth=200)
tree.column("three", width=80, minwidth=50, stretch=tk.NO)
Définition des rubriques
tree.heading("#0",text="Name",anchor=tk.W)
tree.heading("one", text="Date modified",anchor=tk.W)
tree.heading("two", text="Type",anchor=tk.W)
tree.heading("three", text="Size",anchor=tk.W)
Insérer des lignes
# Level 1
folder1=tree.insert("", 1, "", text="Folder 1", values=("23-Jun-17 11:05","File folder",""))
tree.insert("", 2, "", text="text_file.txt", values=("23-Jun-17 11:25","TXT file","1 KB"))
# Level 2
tree.insert(folder1, "end", "", text="photo1.png", values=("23-Jun-17 11:28","PNG file","2.6 KB"))
tree.insert(folder1, "end", "", text="photo2.png", values=("23-Jun-17 11:29","PNG file","3.2 KB"))
tree.insert(folder1, "end", "", text="photo3.png", values=("23-Jun-17 11:30","PNG file","3.1 KB"))
Emballage
tree.pack(side=tk.TOP,fill=tk.X)
Sous Windows, la capture d'écran suivante peut être obtenue à partir de cet exemple.
Barre de progression
Le widget ttk.progress
est utile pour traiter de longs calculs afin que l'utilisateur sache que le programme est en cours d'exécution. Après, un exemple de mise à jour d’une barre de progression toutes les 0,5 seconde est donné:
Fonction de mise à jour de la barre de progression
def progress(currentValue):
progressbar["value"]=currentValue
Définir la valeur maximale
maxValue=100
Créer la barre de progression
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
Le mode "déterminé" est utilisé lorsque la barre de progression est sous le contrôle du programme.
Valeurs initiales et maximales
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Emuler la progression chaque 0,5 s
divisions=10
for i in range(divisions):
currentValue=currentValue+10
progressbar.after(500, progress(currentValue))
progressbar.update() # Force an update of the GUI