我想使用来自数组字典的tkinter创建一个下拉菜单,其中我希望键表示菜单选项的更高级别组,以及值数组中的字符串表示用户可用的实际选择。换句话说,当单击下拉列表时,下拉列表应该类似于使用optgroup标记在HTML中创建的下拉列表,其中有两个不可选择的标签用作组标题,可选标签用作实际选项。
我的字典看起来像这样:
ingredients = {
"Herbs":
["basil",
"oregano",
"thyme"],
"Meats":
["chicken",
"beef",
"venison",],
"Spices":
["pepper",
"salt",
"chilli powder",
"cumin"]
}
用户应该可以从下拉菜单中选择'罗勒','牛肉','盐'等,但不能选择'草药','肉'或'香料',它们只能作为静态标题出现。不同的成分组。这可能只使用tkinter / ttk吗?
答案 0 :(得分:1)
这可能会帮助你至少
from tkinter import *
root = Tk()
root.title("Tk dropdown example")
mainframe = Frame(root)
mainframe.grid()
tkvar = StringVar(root)
ingredients = {
"Herbs":
["basil",
"oregano",
"thyme"],
"Meats":
["chicken",
"beef",
"venison",],
"Spices":
["pepper",
"salt",
"chilli powder",
"cumin"]
}
c=[]
for k,v in ingredients.items():
c.append(k)
c.extend(v)
ddl = OptionMenu(mainframe, tkvar, *c)
Label(mainframe, text="Choose a dish").grid(row = 1, column = 1)
ddl.grid(row = 2, column =1)
for i in ingredients:
ddl['menu'].entryconfigure(i, state = "disabled",font=('arial italic',11))
root.mainloop()