更改Tkinter列表框中项目的颜色
问题描述:
参考Is it possible to colour a specific item in a Listbox widget?是否可以根据列表中保存的数据更改bg颜色。更改Tkinter列表框中项目的颜色
例如:
在列表名有几个值,一些积极的,别人负。我想根据它们的正面或负面来改变它们的背景颜色。
if names > 0 :
diffbox.itemconfig(bg='red')
if names < 0 :
diffbox.itemconfig(bg='green')
diffbox.insert(END, names)
答
指数itemconfig()
参数可以是"end"
,你应该好好利用这个优势。首先将项目插入end
,然后更改其背景。
import Tkinter as tk
def demo(master):
listbox = tk.Listbox(master)
listbox.pack(expand=1, fill="both")
# inserting some items
for names in [0,1,-2,3,4,-5,6]:
listbox.insert("end", names)
listbox.itemconfig("end", bg = "red" if names < 0 else "green")
#instead of one-liner if-else, you can use common one of course
#if item < 0:
# listbox.itemconfig("end", bg = "red")
#else:
# listbox.itemconfig("end", bg = "green")
if __name__ == "__main__":
root = tk.Tk()
demo(root)
root.mainloop()
非常感谢!很有帮助 –