2017-04-05 75 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