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.

Capture d'écran du widget treeview sous Windows

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow