tkinter
Ttk-Widgets
Suche…
Einführung
Beispiele für die verschiedenen ttk-Widgets. Ttk hat insgesamt 17 Widgets, von denen elf bereits in tkinter (tk) existierten.
Das ttk-Modul verleiht Ihrer Anwendung ein moderneres und verbessertes Aussehen.
Syntax
- tree = ttk.Treeview (master, ** kwargs)
Parameter
Parameter | Beschreibung |
---|---|
Meister | tkinter-Widgets existieren in einer Hieararchie. Mit Ausnahme des Stammfensters verfügen alle Widgets über ein übergeordnetes Element (auch als "Master" bezeichnet). Wenn das Widget mit pack, place oder grid zum Bildschirm hinzugefügt wird, wird es in diesem übergeordneten Widget angezeigt |
Bemerkungen
In diesen Beispielen wird davon ausgegangen, dass tkinter entweder mit import tkinter as tk
(Python 3) oder import Tkinter as tk
(Python 2) import Tkinter as tk
.
Es wird auch davon ausgegangen, dass ttk entweder mit from tkinter import ttk
(python 3) oder import ttk
(python 2) import ttk
.
Baumansicht: Grundlegendes Beispiel
Dieses Widget wird zum Anzeigen von Elementen mit Hierarchie verwendet. Beispielsweise kann der Windows Explorer auf diese Weise reproduziert werden. Einige schöne Tabellen können auch mit dem treeview
Widget erstellt werden.
Erstellen Sie das Widget
tree=ttk.Treeview(master)
Definition der Spalten
Sie können festlegen, wie viele Spalten, Breite und Mindestbreite, wenn der Benutzer versucht, sie zu strecken. Durch die Definition von stretch=tk.NO
kann der Benutzer die Spaltenbreite nicht ändern.
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)
Definition der Überschriften
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)
Fügen Sie einige Zeilen ein
# 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"))
Verpackung
tree.pack(side=tk.TOP,fill=tk.X)
Unter Windows kann der folgende Screenshot aus diesem Beispiel erhalten werden.
Fortschrittsanzeige
Das Widget ttk.progress
ist nützlich, wenn lange Berechnungen ausgeführt werden, damit der Benutzer weiß, dass das Programm läuft. Es folgt ein Beispiel, in dem eine Fortschrittsleiste alle 0,5 Sekunden aktualisiert wird:
Funktion zum Aktualisieren der Fortschrittsleiste
def progress(currentValue):
progressbar["value"]=currentValue
Stellen Sie den Maximalwert ein
maxValue=100
Erstellen Sie die Fortschrittsleiste
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
Der Modus "determinate" wird verwendet, wenn der Fortschrittsbalken vom Programm gesteuert wird.
Anfangs- und Maximalwerte
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Emulieren Sie den Fortschritt alle 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