You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Tkinter使用字典构建OptionMenu并获取选中值的技术问询

解决Tkinter OptionMenu的默认选中与值获取问题

我来帮你搞定这个问题,你的代码有两个小关键点需要调整,咱们一步步来:

1. 设置OptionMenu的默认选中项

要让GUI启动时默认选中"one",只需要在创建variable后,调用variable.set("one")即可,这样打开界面时选项就会默认显示"one"。

2. 编写获取选中项对应值的函数

在sample函数里,你需要先通过variable.get()拿到当前选中的选项文本(也就是字典的key),然后去options字典里取对应的value。另外注意:你之前写的O_menu = OptionMenu(...).pack()会导致O_menu变成None,因为pack()方法返回的是None,如果之后不需要操作这个OptionMenu组件的话其实不影响,但如果要操作的话最好把组件创建和布局分开写(这是Tkinter的规范写法)。

修正后的完整代码

from tkinter import *
root = Tk()

# 设置变量并指定默认选中值
variable = StringVar(root)
variable.set("one")  # 这行实现默认选中"one"

options = {"one": 1, "two": 2, "three": 3}
# 分开创建和布局,避免O_menu变成None(更规范的写法)
O_menu = OptionMenu(root, variable, *options.keys())
O_menu.pack()

def sample():
    # 获取当前选中的key,再取出对应的值
    selected_key = variable.get()
    selected_value = options[selected_key]
    print(selected_value)

bu = Button(root, text="print", command=sample)
bu.pack()

root.mainloop()

额外小提示

如果担心出现意外的KeyError(虽然这里OptionMenu的选项都是字典的key,理论上不会出现),可以改用options.get(selected_key, "无效选项")来做容错处理,这样即使有异常情况也不会直接崩溃。

内容的提问来源于stack exchange,提问作者Zeryab Hassan Kiani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 17:27:40