如何从 Tkinter OptionMenu 中获取选定的值

How to get selected value from the Tkinter OptionMenu

我正在尝试从下面给出的 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

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

单击时,此按钮还将 return 从 OptionMenu 中选择的值。