繁体   English   中英

为什么我的tkinter treeview没有变colors?

[英]Why is my tkinter treeview not changing colors?

我正在尝试使用标签为我的 tkinter treeview 上色,但即使我遵循了一些教程它也不起作用,我认为我做的一切都是正确的。

self.sidebar_button_event()
            self.ultimo = "Inventario"
            self.cajas_frame = customtkinter.CTkTabview(self, height=250)
            self.cajas_frame.add("Cajas")
            self.cajas_frame.tab("Cajas").grid_columnconfigure(0, weight=1)
            self.cajas_frame.tab("Cajas").grid_rowconfigure(0, weight=1)
            self.cajas_frame.grid(row=0, column=1, padx=(20, 20), pady=(20, 20), sticky="new", columnspan=3)
            self.setTablaCajas()

            n = 0
            for f in self.inventario.datosCajas():
                if n % 2 == 0:
                    self.cajas.insert(parent='', index='end', iid=n, values=f, tags=('par',))
                else:
                    self.cajas.insert(parent='', index='end', iid=n, values=f, tags=('impar',))
                self.cajas.bind("<<TreeviewSelect>>", self.clickCajas)
                n += 1
            n = 0
            
            self.cajas.tag_configure('par', background='orange', )
            self.cajas.tag_configure('impar', background='purple')

这就是我得到的

可能是因为我使用customtkintertkinter吗?

PS:我已经尝试使用Style.configure并且它确实改变了它的外观,但它似乎并没有这样工作,我希望奇数行和偶数行具有不同的颜色。

我使用了一个工作示例来解释行的颜色标签 function:

# Source for base treeview https://www.pythontutorial.net/tkinter/tkinter-treeview/
# extendet with style and color line 11 to 13, 24, 33 to 38 and 60,61
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo

root = tk.Tk()
root.title('Treeview demo')
root.geometry('620x200')

# style the widget
s = ttk.Style()
s.theme_use('clam')

# define columns
columns = ('first_name', 'last_name', 'email')

tree = ttk.Treeview(root, columns=columns, show='headings')

# define headings
tree.heading('first_name', text='First Name')
tree.heading('last_name', text='Last Name')
tree.heading('email', text='Email')
s.configure('Treeview.Heading', background="green3")

# generate sample data
contacts = []
for n in range(1, 100):
    contacts.append((f'first {n}', f'last {n}', f'email{n}@example.com'))

# add data to the treeview AND tag the row color
i = 1
for contact in contacts:
    i += 1
    if i%2:
        tree.insert('', tk.END, values=contact, tags = ('oddrow',))
    else:
        tree.insert('', tk.END, values=contact, tags = ('evenrow',))
    


def item_selected(event):
    for selected_item in tree.selection():
        item = tree.item(selected_item)
        record = item['values']
        # show a message
        showinfo(title='Information', message=','.join(record))


tree.bind('<<TreeviewSelect>>', item_selected)

tree.grid(row=0, column=0, sticky='nsew')

# add a scrollbar
scrollbar = ttk.Scrollbar(root, orient=tk.VERTICAL, command=tree.yview)
tree.configure(yscroll=scrollbar.set)
scrollbar.grid(row=0, column=1, sticky='ns')

# style row colors
tree.tag_configure('oddrow', background='lightgrey')
tree.tag_configure('evenrow', background='white')

# run the app
root.mainloop()

Output: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM