Python 如何从Tkinter选项菜单中获取选定值

Python 如何从Tkinter选项菜单中获取选定值,python,tkinter,optionmenu,tkinter.optionmenu,Python,Tkinter,Optionmenu,Tkinter.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', '20

我试图从下面给出的选项菜单中获取所选选项,但无法全局使用所选值

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()

单击此按钮时,还将返回从
选项菜单中选择的值

尝试
yearchoosen=OptionMenu(Frame1,n,*valueyear,command=callback,variable=n)
,并在函数内部显示
n.get()
?而且你的Q仍然不清晰为了你的快速响应,我在回调函数内的“selection”中得到了选中的值,但在回调函数外我不能使用相同的值。你是否遵循了我评论的步骤?是的,我尝试了,我使用“n.get”得到了值现在如何在回调函数之外访问相同的值?请联系我“gulamhmd20@gmail.com“我需要帮助。@你可以在这里指定你的帮助吗?不太喜欢gmail