Skip to content Skip to sidebar Skip to footer

Colorful Dropdown Menu In Tkinter

Is it possible to add colorful items in dropdown in Tkinter? Dropdown will take its values from enum class. For example, enum class has 'red,yellow,green' elements. Sections of dro

Solution 1:

Adding colors to the menu is possible with the keywords foreground and background; take a look.

try:
    import tkinter as tk
except:
    import Tkinter as tk

root = tk.Tk()

menubar = tk.Menu(root)

filemenu = tk.Menu(menubar,tearoff=0)

filemenu.add_command(label="text 1")
filemenu.add_command(label='text 2', foreground = 'blue')
filemenu.add_command(label='text 3',background='green')

# entire dropdown menu has been given this color
editmenu = tk.Menu(menubar,tearoff=0,foreground = 'green')
editmenu.add_command(label='copy')
editmenu.add_command(label='paste')

menubar.add_cascade(menu=filemenu, label="File")
menubar.add_cascade(menu=editmenu, label="edit")

root.config(menu=menubar)

root.mainloop()

Taking colors from a predefined list, involves a for-loop.

try:
    import tkinter as tk
except:
    import Tkinter as tk

root = tk.Tk()

menubar = tk.Menu(root,foreground='red')
filemenu = tk.Menu(menubar,tearoff=0)

text = ['text 1', 'text 2', 'text 3']
color = ['green','red','yellow']

for a,b in zip(text,color):
    filemenu.add_command(label=a,foreground=b)

menubar.add_cascade(menu=filemenu, label="File")
root.config(menu=menubar)
root.mainloop()

EDIT: hopefully converted code to 2.7.


Post a Comment for "Colorful Dropdown Menu In Tkinter"