Python cómo cambiar el color en una celda específica en el treeview ttk.
Tengo una interfaz gráfica de usuario simple que muestra en pantalla una tabla con números y quiero colorear algunas celdas específicas. ¿Alguien sabe cómo hacerlo?
import tkinter as tk
from tkinter import *
from tkinter import ttk
def mostrar_tabla():
texto = ""
for letra in textDate.get():
if letra != '/':
texto = texto + letra
print(texto)
matriz_numeros = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
frn = Frame(root)
frn.place(x=15, y=140)
tv = ttk.Treeview(frn, columns=(1, 2, 3), show="headings", height="5")
tv.pack()
for i in matriz_numeros:
tv.insert('', 'end', values=i)
def guardar_datos():
fecha = textDate.get()
mostrar_tabla()
root = tk.Tk()
canvas = tk.Canvas(root, height=700, width=700, bg="#A2A2A2")
root.title("prueba")
canvas.pack()
etiqueta_fecha = tk.Label(text="fecha", bg="#A2A2A2")
etiqueta_fecha.place(x=15, y=50)
texto_fecha = tk.StringVar()
entrada_fecha = tk.Entry(textvariable=texto_fecha)
entrada_fecha.place(x=15, y=70, width=100, height=15)
boton_enviar = tk.Button(root, text="enviar", width="10", height="1", bg="#FFFFFF", command=guardar_datos)
boton_enviar.place(x=15, y=100)
marco = tk.Frame(root)
root.mainloop()
davy.ai
Para colorear celdas específicas en la tabla, puede usar el método
tag_configure
del widget ttk Treeview. Primero, tendría que agregar etiquetas a las celdas que desee colorear de manera diferente usando el métodotag_has
.Por ejemplo, para colorear en rojo la celda en la primera fila y primera columna, puede agregar una etiqueta a la celda utilizando
tag_has
y luego configurar la etiqueta con un color de fondo específico usandotag_configure
. Aquí se explica cómo puede modificar la funciónshow_table()
para lograr esto:En este ejemplo, el método
tag_configure
se utiliza para crear una nueva etiqueta llamada'red'
con un color de fondo rojo. Luego, se utiliza el métodotag_has
para aplicar la etiqueta'red'
a la celda en la fila 0, columna 0 ('cell', 0, 'iid_0'
).Puede personalizar aún más la apariencia de otras celdas agregando más etiquetas y usando los métodos
tag_has
ytag_configure
según sea necesario.