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

如何用Python将多个Tkinter输入存入字典并设置不同值?

解决Tkinter多个下拉框值存入字典的问题

你的问题出在回调函数无法区分触发事件的下拉框,导致每次都把同一个选中值同时赋给字典的两个键。可以通过给回调函数传递额外的键标识,来分别更新对应的值,代码修改如下:

import tkinter as tk

# 全局字典存储下拉框值,初始可设默认值
input_dict = {'aaa': '', 'bbb': ''}

def callback(key, selection):
    input_dict[key] = selection
    print(input_dict)

root = tk.Tk()

opt = tk.StringVar()
# 用lambda绑定键名'aaa',传递给回调函数
menu = tk.OptionMenu(root, opt, 'a', 'b', 'c', command=lambda val: callback('aaa', val))

opt1 = tk.StringVar()
# 绑定键名'bbb'
menu1 = tk.OptionMenu(root, opt1, 'a', 'b', 'c', command=lambda val: callback('bbb', val))

menu.pack()
menu1.pack()
root.mainloop()

关键说明:

  • 把字典定义在全局作用域,这样可以持续保存两个下拉框的选中状态,不会每次回调都重新创建。
  • 每个OptionMenu的command参数用lambda包装,额外传递对应的字典键名('aaa'和'bbb'),让回调函数知道要更新哪个键的值。
  • 回调函数接收键名和选中值,更新字典后打印,这样就能得到两个下拉框各自独立的选中值组合,比如{'aaa': 'c', 'bbb': 'a'}。

内容的提问来源于stack exchange,提问作者Zalman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:34:58