다채로운 항목을 Tkinter의 드롭 다운에 추가 할 수 있습니까? Dropdown은 enum 클래스에서 값을 가져옵니다. 예를 들어 enum 클래스에는 'red, yellow, green'요소가 있습니다. 드롭 다운 섹션은 요소에 따라 녹색, 빨간색, 노란색 색상이됩니다. 내가 어떻게 만들 수 있니?tkinter의 다채로운 드롭 다운 메뉴
답변
전경색 및 배경색 키워드를 사용하여 메뉴에 색상을 추가 할 수 있습니다. 보세요.
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입니다.
고마워요. 나는 몇 시간이 지나서야 노력했다. 그리드에 추가 할 드롭 다운 메뉴에서이 작업을 수행 할 수 있습니까?이 드롭 다운의 값은 텍스트 또는 색상 일 수 있습니다. 어떤 힌트? – user2694330
무슨 뜻인지 확실하지 않습니까? 'for'-loop (2 번째 예)로 내가했던 것과 다른가요? – arrethra
아니요, 여기 다채로운 항목은 파일 메뉴의 일부입니다. 그리드에 포장해야하는 별도의 드롭 다운 위젯의 일부가되어야합니다. – user2694330
설명서를 읽고 직접 사용해 보았습니까? –