2016-04-28 2 views
0

Ссылка на Is it possible to colour a specific item in a Listbox widget? Возможно ли изменить bg цвет на основе данных, содержащихся в списке.Изменение цвета элемента в списке Tkinter

Например:

В списке имена есть несколько значений, некоторые позитивные, другие отрицательные. Я хочу изменить их цвет фона, исходя из того, являются ли они положительными или отрицательными.

if names > 0 : 
    diffbox.itemconfig(bg='red') 
if names < 0 : 
    diffbox.itemconfig(bg='green') 

diffbox.insert(END, names) 

ответ

1

индекс параметр itemconfig() может быть "end", вы должны воспользоваться этим. Сначала вставьте элемент в end, затем измените его фон.

import Tkinter as tk 

def demo(master): 
    listbox = tk.Listbox(master) 
    listbox.pack(expand=1, fill="both") 

    # inserting some items 
    for names in [0,1,-2,3,4,-5,6]: 
     listbox.insert("end", names) 
     listbox.itemconfig("end", bg = "red" if names < 0 else "green") 

     #instead of one-liner if-else, you can use common one of course 
     #if item < 0: 
     #  listbox.itemconfig("end", bg = "red") 
     #else: 
     #  listbox.itemconfig("end", bg = "green") 

if __name__ == "__main__": 
    root = tk.Tk() 
    demo(root) 
    root.mainloop() 
+0

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

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