tkinter
Виджеты Ttk
Поиск…
Вступление
Примеры различных виджетов ttk. Ttk имеет в общей сложности 17 виджетов, одиннадцать из которых уже существуют в tkinter (tk).
Использование модуля ttk дает вашему приложению более современный и улучшенный внешний вид.
Синтаксис
- дерево = ttk.Treeview (мастер, ** kwargs)
параметры
параметр | Описание |
---|---|
мастер | В hieararchy существуют виджеты tkinter. За исключением корневого окна, у всех виджетов есть родительский элемент (также называемый «master»). Когда виджет будет добавлен на экран с пакетом, местом или сеткой, он появится внутри этого родительского виджета |
замечания
В этих примерах предполагается, что tkinter был импортирован либо import tkinter as tk
(python 3), либо import Tkinter as tk
(python 2).
Также предполагается, что ttk был импортирован либо from tkinter import ttk
(python 3), либо из import ttk
(python 2).
Treeview: основной пример
Этот виджет используется для отображения элементов с иерархией. Например, Windows Explorer может быть воспроизведен таким образом. Некоторые красивые таблицы также можно сделать с помощью виджета treeview
.
Создание виджета
tree=ttk.Treeview(master)
Определение столбцов
Вы можете определить, сколько столбцов, их ширина и минимальная ширина, когда пользователь попытается растянуть его. Определив stretch=tk.NO
, пользователь не может изменить ширину столбца.
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)
Определение заголовков
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)
Вставить несколько строк
# 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"))
упаковка
tree.pack(side=tk.TOP,fill=tk.X)
В Windows из этого примера можно получить следующий снимок экрана.
Индикатор
Виджет ttk.progress
полезен при работе с длинными вычислениями, чтобы пользователь знал, что программа запущена. Ниже приведен пример обновления контрольной панели каждые 0,5 секунды:
Функция обновления контрольной панели
def progress(currentValue):
progressbar["value"]=currentValue
Установите максимальное значение
maxValue=100
Создать индикатор выполнения
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)
«Определенный» режим используется, когда индикатор прогресса находится под управлением программы.
Начальное и максимальное значения
currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue
Эмулировать прогресс каждые 0,5 с
divisions=10
for i in range(divisions):
currentValue=currentValue+10
progressbar.after(500, progress(currentValue))
progressbar.update() # Force an update of the GUI