我是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”值,所以我无法得到用户对不同选项菜单所做的选择。
为了使事情更清楚,我们假设我有两个选项菜单
Dropmenu(['a','b','c'],'Select')
Dropmenu(['c','d','e'],'Select')
如果我用
myvalue=var.get()
由于两个选项菜单都有相同的变量名,如何获取这两个值?
如果要创建多个具有相同配置的菜单,我将子类化OptionMenu而不是定义函数:
在我的示例中,我假设唯一要更改的是选项,但是如果每个实例都有自己的背景色或字体,那么您只需将其作为参数添加到
__init__
方法。相关问题 更多 >
编程相关推荐