tkinter
Ttk-widgets
Zoeken…
Invoering
Voorbeelden van de verschillende ttk-widgets. Ttk heeft in totaal 17 widgets, waarvan elf al in tkinter (tk) bestonden.
Het gebruik van de ttk-module geeft uw toepassing een modernere en verbeterde uitstraling.
Syntaxis
- boom = ttk.Treeview (master, ** kwargs)
parameters
Parameter | Beschrijving |
---|---|
meester | tkinter-widgets bestaan in een hieararchie. Behalve het root-venster hebben alle widgets een ouder (ook "master" genoemd). Wanneer de widget met pakket, plaats of raster aan het scherm wordt toegevoegd, verschijnt deze in deze bovenliggende widget |
Opmerkingen
Deze voorbeelden gaan ervan uit dat tkinter is geïmporteerd met import tkinter as tk
(python 3) of import Tkinter as tk
(python 2).
Er wordt ook aangenomen dat ttk is geïmporteerd met ofwel from tkinter import ttk
(python 3) of import ttk
(python 2).
Treeview: eenvoudig voorbeeld
Deze widget wordt gebruikt om items met hiërarchie weer te geven. Windows Explorer kan bijvoorbeeld op deze manier worden gereproduceerd. Sommige mooie tabellen kunnen ook worden gedaan met behulp van de treeview
widget.
Maak de widget
tree=ttk.Treeview(master)
Definitie van de kolommen
U kunt bepalen hoeveel kolommen, hun breedte en minimumbreedte wanneer de gebruiker het probeert uit te rekken. Door stretch=tk.NO
definiëren, kan de gebruiker de breedte van de kolom niet wijzigen.
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)
Definitie van de rubrieken
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)
Voeg enkele rijen in
# 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"))
Inpakken
tree.pack(side=tk.TOP,fill=tk.X)
In Windows kan de volgende schermafbeelding uit dit voorbeeld worden verkregen.
Voortgangsbalk
De widget ttk.progress
is handig bij het verwerken van lange berekeningen, zodat de gebruiker weet dat het programma wordt uitgevoerd. Hierna wordt een voorbeeld gegeven dat elke 0,5 seconden een voortgangsbalk bijwerkt:
Functie die de voortgangsbalk bijwerkt
def progress(currentValue):
progressbar["value"]=currentValue
Stel de maximale waarde in
maxValue=100
Maak de voortgangsbalk
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
"Bepaal" modus wordt gebruikt wanneer de voortgangsbalk onder controle is van het programma.
Begin- en maximumwaarden
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Emuleren vooruitgang elke 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