我是python的初学者,通常如果我想在我的程序中添加选项菜单,我会做这样的事情。
from Tkinter import*
root=Tk()
mylist=['a','b','c']
var=StringVar(root)
var.set("Select status")
mymenu=OptionMenu(root,var,*mylist)
mymenu.pack()
mymenu.config(font=('calibri',(10)),bg='white',width=12)
mymenu['menu'].config(font=('calibri',(10)),bg='white')
root.mainloop()
它工作正常,但我想知道是否有任何更短的方法可以实现相同的结果,因为每个选项菜单都需要 7 行代码。我必须创建几个选项菜单,所以我正在寻找一种适当且更短的方法来做到这一点。
编辑:有人指出要创建将生成选项菜单的功能。所以我尝试了这个,
from Tkinter import*
def Dropmenu(mylist,status):
var=StringVar(root)
var.set(status)
mymenu=OptionMenu(root,var,*mylist)
mymenu.pack(side=LEFT)
mymenu.config(font=('calibri',(10)),bg='white',width=12)
mymenu['menu'].config(font=('calibri',(10)),bg='white')
root=Tk()
Dropmenu(['a','b','c'],'Select')
root.mainloop()
但是现在,我如何处理“var”以便我可以获取用户选择的所有值?根据我的示例,所有选项菜单都将具有相同的“var”值,因此我无法获取用户为不同选项菜单所做的选择。
为了让事情更清楚,假设我有 2 个选项菜单
Dropmenu(['a','b','c'],'Select')
Dropmenu(['c','d','e'],'Select')
如果我使用
myvalue=var.get()
由于两个选项菜单具有相同的 var 名称,我如何获取这两个值?