如何从 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
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()
单击时,此按钮还将 return 从 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
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()
单击时,此按钮还将 return 从 OptionMenu
中选择的值。