2017-04-05 97 views
0

是否可以在Tkinter的下拉菜单中添加丰富多彩的项目?下拉将从枚举类获取其值。例如,枚举类具有“红色,黄色,绿色”元素。根据元素,下拉的部分将是绿色,红色和黄色。我怎么能做到这一点?tkinter的彩色下拉菜单

+1

您是否阅读过文档并亲自尝试过? –

回答

0

使用关键字前景和背景为菜单添加颜色是可能的;看一看。

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

从预定义列表中获取颜色涉及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() 

编辑:有希望将代码转换为2.7。

+0

非常感谢!从几个小时以来我一直在尝试。是否有可能在我想要添加到网格并读取此类下拉列表的值(可以是文本或颜色)的下拉菜单中执行此操作。任何提示? – user2694330

+0

不确定你的意思?是不是我用'for'-loop(第二个例子)做的那种? – arrethra

+0

不,这里的丰富多彩的物品是filemenu的一部分。我需要它是一个单独的下拉小部件的一部分,它需要打包在一个网格中。 – user2694330