Is it possible to colour a specific item in a Listbox widget?

前端 未结 1 675
长发绾君心
长发绾君心 2020-12-10 05:11

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 cell woul

相关标签:
1条回答
  • 2020-12-10 05:23

    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()
    
    0 讨论(0)
提交回复
热议问题