2015-03-16 4 views
0

Я использую Tkinter.Listbox() виджета (в Python), чтобы создать список возможных цветов для выбора:Tkinter.Listbox(): активная линия без изменения цвета?

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

Вы можете добавить selectbackground к вашему insert() цикла:

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

Это позволит установить фон выбора в том же цвете.

+0

Большое вам спасибо! –

Смежные вопросы