【发布时间】:2019-10-29 13:30:09
【问题描述】:
在以下 Python 代码中,我尝试更改 Treeview 表中行的颜色。它不起作用。我尝试使用 tag.configure 但... 正如您所看到的,该函数的作用是从 sql 数据库中提取数据并将其放入 Treeview 表中,根据行颜色应该不同但它不起作用... anu help?
from tkinter import *
from tkinter import ttk
import sqlite3
root=Tk()
FrameTabla=Frame(root)
FrameTabla.pack()
def mostrar_items():
miConexion=sqlite3.connect("database")
miCursor=miConexion.cursor()
miCursor.execute("SELECT * FROM DATABASE ORDER BY USERID DESC")
lista=miCursor.fetchall()
for i in lista:
if lista.index(i) % 2 == 0:
Tabla.insert('', 0, text=i[0], values=(i[1], i[2]), tags=('par',))
else:
Tabla.insert('', 0, text=i[0], values=(i[1], i[2]), tags=('impar',))
miConexion.close()
Tabla=ttk.Treeview(FrameTabla, heigh=20, columns=("Nombre", "Apellido"))
Tabla.grid(row=0, column=0, columnspan=3)
Tabla.tag_configure('par',background='white',foreground='black')
Tabla.tag_configure('impar',background='black',foreground='white')
Tabla.heading('#0', text = 'UserID', anchor = CENTER)
Tabla.heading('Nombre', text = 'Nombre', anchor = CENTER)
Tabla.heading('Apellido', text = 'Apellido', anchor = CENTER)
Tabla.column('#0', width=120, anchor= CENTER)
Tabla.column('Nombre', anchor = CENTER)
Tabla.column('Apellido', anchor = CENTER)
ScrollVert=Scrollbar(FrameTabla, command=Tabla.yview)
ScrollVert.grid(row=0, column=4, sticky='nsew')
mostrar_items()
root.mainloop()
【问题讨论】:
-
您是否确认您的状况
if lista.index(i) % 2 == 0:发生了变化? -
是的,我检查过打印不同的 str 并且它可以工作...
-
看来ttk库有bug
-
您使用的是哪个版本?