Foros Python

Versión completa: Poner un scrollbar en un Treeview en tkinter
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola Francisco ¿Cómo estas?,
me podría guiar para hacer lo que dice el enunciado, probé poniendo mas productos
de lo que se pueda visualizar pero la barra no aparece si en cambio con la ruedita del
mouse se mueven en ambas direcciones.-
Coste que estoy estudiando el tema con tu tutorial que por cierto es el mas completo,
pero parece no hablar del tema scrollbar.-

Código:
from tkinter import *
import tkinter  as tk
from tkinter import ttk

root = tk.Tk()
root.title('Ejemplos de tablas')
root.geometry('600x300')
#root['bg']='#fb0'

tv = ttk.Treeview(root, columns=("col1", "col2"))
tv.column("#0", width=200)
tv.column("col1", width=80, anchor=CENTER)
tv.column("col2", width=80, anchor=CENTER)


tv.heading("#0", text="Producto", anchor=CENTER)
tv.heading("col1", text="Precio", anchor=CENTER)
tv.heading("col2", text="Stock", anchor=CENTER)

tv.insert("", END, text="Leche Ylolay TB x 1 litro", values=("130.50", "29"))
tv.insert("", END, text="Tomate Arcor lata x 410 grs.", values=("106.00", "48"))
tv.insert("", END, text="Aceite Zanoni botella x 900 cc.", values=("230.00", "11"))

tv.pack()

root.mainloop()

Slds. Daniel ☕☕☕
Hola, Daniel.

Sí, faltaría agregarle al tutorial algo sobre el scrollbar. Se resuelve usando ttk.Scrollbar (podés ver un ejemplo acá). En este caso sería asi:

Código:
tv = ttk.Treeview(root, columns=("col1", "col2"))
tv.column("#0", width=200)
tv.column("col1", width=80, anchor=CENTER)
tv.column("col2", width=80, anchor=CENTER)
tv.heading("#0", text="Producto", anchor=CENTER)
tv.heading("col1", text="Precio", anchor=CENTER)
tv.heading("col2", text="Stock", anchor=CENTER)

# Configurar barra de desplazamiento.
scrollbar = ttk.Scrollbar(tv, orient=tk.VERTICAL)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
tv.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=tv.yview)

# Agregar algunos elementos adicionales.
for i in range(20):
    tv.insert("", END, text="Leche Ylolay TB x 1 litro", values=("130.50", "29"))
    tv.insert("", END, text="Tomate Arcor lata x 410 grs.", values=("106.00", "48"))
    tv.insert("", END, text="Aceite Zanoni botella x 900 cc.", values=("230.00", "11"))

# Esto es necesario para que la vista de árbol mantenga su tamaño luego
# de configurar el scrollbar.
tv.pack(expand=True, fill=tk.BOTH)

root.mainloop()

Saludos
Hola Francisco , hola gente ¿Cómo están?.
Mil disculpas x no agradecer antes lo que pasa que estoy haciendo algunas practicas
y es tanto el entusiasmo que casi pierdo noción de todo lo que me rodea.-
Francisco como siempre funciona a la perfección, gracias.

Slds. Daniel ☕☕☕