tkinter
Widżety TTK
Szukaj…
Wprowadzenie
Przykłady różnych widżetów TTK. Ttk ma w sumie 17 widżetów, z których jedenaście istniało już w tkinter (tk).
Korzystanie z modułu ttk nadaje Twojej aplikacji bardziej nowoczesny i ulepszony wygląd.
Składnia
- drzewo = ttk.Treeview (master, ** kwargs)
Parametry
Parametr | Opis |
---|---|
mistrz | Widżety tkinter istnieją w hierarchii. Z wyjątkiem okna głównego wszystkie widżety mają element nadrzędny (zwany także „głównym”). Gdy widżet zostanie dodany do ekranu z paczką, miejscem lub siatką, pojawi się w tym widżecie nadrzędnym |
Uwagi
W tych przykładach założono, że tkinter został zaimportowany za pomocą import tkinter as tk
(python 3) lub import Tkinter as tk
(python 2).
Zakłada się również, że ttk został zaimportowany albo from tkinter import ttk
(python 3), albo import ttk
(python 2).
Widok drzewa: Podstawowy przykład
Ten widget służy do wyświetlania elementów z hierarchią. Na przykład, Eksplorator Windows można odtworzyć w ten sposób. Niektóre ładne tabele można również wykonać za pomocą widgetu treeview
.
Utwórz widżet
tree=ttk.Treeview(master)
Definicja kolumn
Możesz zdefiniować liczbę kolumn, ich szerokość i minimalną szerokość, gdy użytkownik będzie próbował je rozciągnąć. Definiując stretch=tk.NO
, użytkownik nie może modyfikować szerokości kolumny.
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)
Definicja nagłówków
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)
Wstaw kilka wierszy
# 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"))
Uszczelka
tree.pack(side=tk.TOP,fill=tk.X)
W systemie Windows następujący zrzut ekranu można uzyskać z tego przykładu.
Pasek postępu
Widżet ttk.progress
jest przydatny w przypadku długich obliczeń, dzięki czemu użytkownik wie, że program działa. Poniżej podano przykład aktualizacji paska postępu co 0,5 sekundy:
Funkcja aktualizująca pasek postępu
def progress(currentValue):
progressbar["value"]=currentValue
Ustaw maksymalną wartość
maxValue=100
Utwórz pasek postępu
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
Tryb „określania” jest używany, gdy pasek postępu jest pod kontrolą programu.
Wartości początkowe i maksymalne
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Emuluj postęp co 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