2017-04-05 3 views
0

다채로운 항목을 Tkinter의 드롭 다운에 추가 할 수 있습니까? Dropdown은 enum 클래스에서 값을 가져옵니다. 예를 들어 enum 클래스에는 'red, yellow, green'요소가 있습니다. 드롭 다운 섹션은 요소에 따라 녹색, 빨간색, 노란색 색상이됩니다. 내가 어떻게 만들 수 있니?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 (2 번째 예)로 내가했던 것과 다른가요? – arrethra

+0

아니요, 여기 다채로운 항목은 파일 메뉴의 일부입니다. 그리드에 포장해야하는 별도의 드롭 다운 위젯의 일부가되어야합니다. – user2694330