Python ttk Combobox如何实现显示文本但提交对应ID值?
解决ttk Combobox显示文本并关联对应ID的方法
ttk Combobox本身没有直接绑定显示文本与对应值的内置属性,你可以通过索引对应的方式实现需求,这是适配你场景最直接可靠的方案:
实现代码
import tkinter as tk from tkinter import ttk def on_submit(): # 获取选中选项的索引,未选中时返回-1 selected_index = combo.current() if selected_index != -1: # 通过索引直接匹配id_list中的对应值 selected_id = id_list[selected_index] print(f"提交的ID: {selected_id}") root = tk.Tk() database_list = ['Movies', 'Movies', 'Games', 'Music', 'Games', 'Music'] id_list = [0,1,2,3,4,5] # 配置Combobox显示database_list的内容 combo = ttk.Combobox(root, values=database_list) combo.pack(pady=10) submit_btn = ttk.Button(root, text="提交", command=on_submit) submit_btn.pack(pady=5) root.mainloop()
核心逻辑说明
- 利用Combobox的
current()方法获取选中项的索引,这个索引和你两个列表的元素顺序严格对应。 - 即使
database_list里有重复文本(比如两个Movies),只要database_list和id_list的元素顺序保持一致,通过索引匹配就能准确拿到对应的ID,完全不受重复文本影响。
内容的提问来源于stack exchange,提问作者David Saylor
相关产品推荐
相关产品推荐

