Python Tkinter:如何为option1添加嵌套dropdown列表?
实现点击Option1弹出子下拉菜单的Tkinter方案
要实现点击option1时弹出另一个下拉列表,只需将option1从普通命令项改为级联菜单即可。以下是修改后的完整代码:
import tkinter as tk from tkinter import ttk class Windows: def __init__(self, master): var = tk.StringVar() optionMenu = ttk.OptionMenu(master, var, 'Default') optionMenu.pack() menu = optionMenu["menu"] sublist1 = tk.Menu(menu, tearoff=0) menu.add_cascade(label='list 1', menu=sublist1) # 创建option1对应的子下拉菜单 sub_option1_menu = tk.Menu(sublist1, tearoff=0) # 将option1设为级联项,关联子菜单 sublist1.add_cascade(label="option1", menu=sub_option1_menu) # 给子菜单添加具体选项及点击事件 sub_option1_menu.add_command(label="子选项1-1", command=lambda: print("选中子选项1-1")) sub_option1_menu.add_command(label="子选项1-2", command=lambda: print("选中子选项1-2")) sublist2 = tk.Menu(menu, tearoff=0) menu.add_cascade(label='list 2', menu=sublist2) sublist2.add_command(label="option2") root = tk.Tk() app = Windows(root) root.mainloop()
关键修改说明
- 用
add_cascade()替代add_command(),把option1转化为可展开的菜单入口,而非单一命令项 tearoff=0禁用了菜单默认的拖拽分离功能,保持界面整洁- 可以通过
command参数给子菜单选项绑定自定义的点击响应逻辑
内容的提问来源于stack exchange,提问作者val
相关产品推荐
相关产品推荐

