问题描述
我正在尝试从OptionMenu下面的给定中获取选定的选项,但是我无法全局使用选定的值。
def callback(selection):
print(selection)
return selection
yearl=Label(Frame1,text='Select Year ',font=("Helvetica",10) ).place(relx=-0.3,rely=-1.40)
valueyear= ['2018','2019','2020','2021','2022','2023']
n =StringVar(Frame1)
n.set(valueyear[0])
yearchoosen = OptionMenu(Frame1,n,*valueyear,command=callback).place(relx=0.3,rely=-1.45,width=160)
在回调函数中,我获得了正确的选定值,但是我也想在其他函数中使用选择值。
解决方法
您可以在函数外部或代码中的任何位置使用该值,并且可以很好地使用它,因为您可以在主块上对其进行定义:
def callback(selection):
print(n.get())
yearl = Label(Frame1,text='Select Year ',font=("Helvetica",10) )
yearl.place(relx=-0.3,rely=-1.40)
valueyear = ['2018','2019','2020','2021','2022','2023']
n = StringVar(Frame1)
n.set(valueyear[0])
yearchoosen = OptionMenu(Frame1,n,*valueyear,command=callback,variable=n)
yearchoosen.place(relx=0.3,rely=-1.45,width=160) #so yearchoosen wont return None
n
和n.get()
可以从代码的任何位置访问。
要对此进行测试,只需创建一个虚拟函数即可:
def dummy():
print('This is the value from the option menu',n.get())
dummy_b = Button(Frame1,text='Dummy',command=dummy)
dummy_b.pack()
单击时,此按钮还将返回从OptionMenu
中选择的值。