Buscar..


Introducción

Ejemplos de los diferentes widgets ttk. Ttk tiene un total de 17 widgets, once de los cuales ya existían en tkinter (tk).

El uso del módulo ttk le da a su aplicación un aspecto más moderno y mejorado.

Sintaxis

  • tree = ttk.Treeview (master, ** kwargs)

Parámetros

Parámetro Descripción
dominar Los widgets tkinter existen en una jerarquía. Excepto por la ventana raíz, todos los widgets tienen un padre (también llamado "maestro"). Cuando el widget se agregue a la pantalla con paquete, lugar o cuadrícula, aparecerá dentro de este widget principal

Observaciones

Estos ejemplos asumen que tkinter se ha importado con import tkinter as tk (python 3) o import Tkinter as tk (python 2).

También se supone que ttk se ha importado con from tkinter import ttk (python 3) o import ttk (python 2).

Treeview: ejemplo básico

Este widget se utiliza para mostrar elementos con jerarquía. Por ejemplo, el explorador de Windows se puede reproducir de esta manera. Algunas bonitas tablas también se pueden hacer usando el widget de vista de treeview .

Crear el widget

tree=ttk.Treeview(master)

Definición de las columnas.

Puede definir cuántas columnas, su ancho y su ancho mínimo cuando el usuario intenta estirarlo. Al definir stretch=tk.NO , el usuario no puede modificar el ancho de la columna.

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)

Definición de los encabezados.

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)

Insertar algunas filas

# 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"))

Embalaje

tree.pack(side=tk.TOP,fill=tk.X)

En Windows, la siguiente captura de pantalla se puede obtener de este ejemplo.

Captura de pantalla del widget de vista de árbol en Windows

Barra de progreso

El widget ttk.progress es útil cuando se trata de cálculos largos para que el usuario sepa que el programa se está ejecutando. A continuación, se muestra un ejemplo de actualización de una barra de progreso cada 0,5 segundos:

Función de actualización de la barra de progreso.

def progress(currentValue):
    progressbar["value"]=currentValue

Establecer el valor máximo

maxValue=100

Crea la barra de progreso

progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar.pack(side=tk.TOP)

El modo "determinado" se usa cuando la barra de progreso está bajo el control del programa.

Valores iniciales y máximos.

currentValue=0
progressbar["value"]=currentValue
progressbar["maximum"]=maxValue

Emular el progreso cada 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow