Поиск…


Вступление

Примеры различных виджетов 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 из этого примера можно получить следующий снимок экрана.

Снимок экрана виджета treeview в 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow