是否可以为Listbox小部件中的特定项目着色?

时间:2011-03-18 05:28:52

标签: python user-interface colors listbox tkinter

我指的是Listbox小部件中的特定元素。

最需要着色背景,但特定细胞的任何形式的着色都会很棒。

1 个答案:

答案 0 :(得分:20)

根据有关Listbox小部件的effbot.org文档,您无法更改特定项目的颜色:

  

列表框只能包含文本项,并且所有项必须具有相同的字体和颜色

但实际上,您可以使用Listbox对象的itemconfig方法更改特定项目的字体和背景颜色。请参阅以下示例:

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()