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.

Screenshot des Treeview-Widget unter Windows

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow