Is it possible to colour a specific item in a Listbox widget?
I'm referring to a specific element in the Listbox
widget.
Colouring the background is most desired but any form of colouring for a specific c开发者_如何学Goell would be fantastic.
According to the effbot.org
documentation regarding the Listbox
widget you cannot change the color of spefic items:
The listbox can only contain text items, and all items must have the same font and color
But actually you can change both the font and background colors of specific items, by using the itemconfig
method of your Listbox
object. See the following example:
import tkinter as tk
def demo(master):
listbox = tk.Listbox(master)
listbox.pack(expand=1, fill="both")
# inserting some items
listbox.insert("end", "A list item")
for item in ["one", "two", "three", "four"]:
listbox.insert("end", item)
# this changes the background colour of the 2nd item
listbox.itemconfig(1, {'bg':'red'})
# this changes the font color of the 4th item
listbox.itemconfig(3, {'fg': 'blue'})
# another way to pass the colour
listbox.itemconfig(2, bg='green')
listbox.itemconfig(0, foreground="purple")
if __name__ == "__main__":
root = tk.Tk()
demo(root)
root.mainloop()
精彩评论