为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Tkinter OptionMenu 获取所选值

如何从 Tkinter OptionMenu 获取所选值

慕的地10843 2024-01-04 15:24:40
我试图从下面给出的 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)在回调函数中,我得到了正确的选择值,但是,我也想在其他函数中使用选择值。
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您可以在函数外部或代码中的任何位置使用该值,这一切都很好,因为您在主块上定义了它:


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.


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 48 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信