我是一名Python初學者,通常如果我想添加選項菜單到我的程序,我會做這樣的事情。更簡潔的配置tkinter選項菜單的方式?
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()
因爲這兩個選項的菜單具有相同的變量名稱,我怎麼取兩個值?
任何時候你有一個重複的任務,你的第一個想法應該是「我可以定義一個函數來簡化這個?」 – mgilson