Tkinter.Listbox():活动行没有更改颜色?

时间:2015-03-16 11:21:29

标签: python tkinter

我正在使用Tkinter.Listbox()小部件(在python中)创建可供选择的颜色列表:

import Tkinter as tk

color_palette =    ['#FF4D00',
                    '#00A1C3',
                    '#89F055',
                    '#F943A8',
                    '#534569']
_root = tk.Tk()
_col_pick = tk.Listbox(_root, height=4, width=10, activestyle='dotbox')
_col_pick.pack()
for i, c in enumerate(color_palette):
    _col_pick.insert(tk.END, c)
    _col_pick.itemconfig(i, {'bg':c})
_root.mainloop()

很明显,我不希望Tk在激活时(即由光标选择)以默认颜色覆盖选定的线条颜色。不幸的是,即使我设置了activestyle ='none',也会发生这种情况。 有没有办法在选择一条线时禁用这种颜色变化?对我来说最好的解决方案只是一个没有任何填充的虚线轮廓。 谢谢,

香美

1 个答案:

答案 0 :(得分:1)

您可以将selectbackground添加到insert()循环:

for i, c in enumerate(color_palette):
    _col_pick.insert(tk.END, c)
    _col_pick.itemconfig(i, {'bg':c, 'selectbackground':c})

这会将选区的背景设置为相同的颜色。