tkinter
Widget Ttk
Ricerca…
introduzione
Esempi dei diversi widget ttk. Ttk ha un totale di 17 widget, undici dei quali già esistenti in tkinter (tk).
L'uso del modulo ttk conferisce alla tua applicazione un aspetto più moderno e migliorato.
Sintassi
- albero = ttk.Treeview (master, ** kwargs)
Parametri
Parametro | Descrizione |
---|---|
maestro | i widget tkinter esistono in una struttura gerarchica. Ad eccezione della finestra radice, tutti i widget hanno un genitore (chiamato anche "master"). Quando il widget viene aggiunto allo schermo con pack, luogo o griglia, apparirà all'interno di questo widget genitore |
Osservazioni
Questi esempi presuppongono che tkinter sia stato importato con import tkinter as tk
(python 3) o import Tkinter as tk
(python 2).
Si presume inoltre che ttk sia stato importato from tkinter import ttk
(python 3) o import ttk
(python 2).
Treeview: esempio di base
Questo widget viene utilizzato per visualizzare elementi con gerarchia. Ad esempio, Windows Explorer può essere riprodotto in questo modo. Alcuni bei tavoli possono essere fatti anche usando il widget treeview
.
Crea il widget
tree=ttk.Treeview(master)
Definizione delle colonne
Puoi definire quante colonne, la loro larghezza e larghezza minima quando l'utente prova ad allungarlo. Definendo stretch=tk.NO
, l'utente non può modificare la larghezza della colonna.
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)
Definizione delle intestazioni
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)
Inserisci alcune righe
# 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"))
Imballaggio
tree.pack(side=tk.TOP,fill=tk.X)
Su Windows, il seguente screenshot può essere ottenuto da questo esempio.
Barra di avanzamento
Il widget ttk.progress
è utile quando si ha a che fare con calcoli lunghi in modo che l'utente sappia che il programma è in esecuzione. Di seguito, viene fornito un esempio di aggiornamento di una barra di avanzamento ogni 0,5 secondi:
Funzione che aggiorna la barra di avanzamento
def progress(currentValue):
progressbar["value"]=currentValue
Imposta il valore massimo
maxValue=100
Crea la barra di avanzamento
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
La modalità "determinata" viene utilizzata quando la barra di avanzamento è sotto il controllo del programma.
Valori iniziali e massimi
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Emula progresso ogni 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