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

如何使用Tkinter创建展示可点击执行对应功能按钮的下拉菜单

Tkinter 按钮式下拉菜单实现方法

你需要的点击顶级选项展开可点击功能项的下拉菜单,是Tkinter原生Menu组件的标准能力,无需自定义复杂控件即可实现。

核心实现步骤

  • 先创建绑定到主窗口的顶层菜单栏对象
  • 为每个顶级菜单项(比如「文件」「编辑」)创建对应的子菜单对象,设置tearoff=0关闭菜单可拖拽脱离的默认特性
  • 调用子菜单的add_command()方法添加功能选项,每个选项通过command参数绑定对应的回调函数,点击时就会触发对应功能
  • 最后将所有子菜单挂载到顶层菜单栏,再把菜单栏绑定到主窗口即可

可运行示例代码

import tkinter as tk
from tkinter import messagebox

# 功能回调函数
def new_file():
    messagebox.showinfo("提示", "已触发新建文件功能")

def open_file():
    messagebox.showinfo("提示", "已触发打开文件功能")

def save_file():
    messagebox.showinfo("提示", "已触发保存文件功能")

def exit_app():
    root.destroy()

# 初始化主窗口
root = tk.Tk()
root.title("菜单演示")
root.geometry("400x300")

# 创建顶层菜单栏
main_menu = tk.Menu(root)

# 创建文件子菜单
file_menu = tk.Menu(main_menu, tearoff=0)
file_menu.add_command(label="新建", command=new_file, accelerator="Ctrl+N")
file_menu.add_command(label="打开", command=open_file, accelerator="Ctrl+O")
file_menu.add_command(label="保存", command=save_file, accelerator="Ctrl+S")
file_menu.add_separator() # 功能分组分隔线
file_menu.add_command(label="退出", command=exit_app, accelerator="Ctrl+Q")

# 将文件子菜单挂载到顶层菜单栏
main_menu.add_cascade(label="文件", menu=file_menu)

# 可选:添加其他顶级菜单
edit_menu = tk.Menu(main_menu, tearoff=0)
edit_menu.add_command(label="复制")
edit_menu.add_command(label="粘贴")
edit_menu.add_command(label="剪切")
main_menu.add_cascade(label="编辑", menu=edit_menu)

# 将菜单栏绑定到主窗口
root.config(menu=main_menu)

# 可选:绑定快捷键
root.bind("<Control-n>", lambda e: new_file())
root.bind("<Control-o>", lambda e: open_file())
root.bind("<Control-s>", lambda e: save_file())
root.bind("<Control-q>", lambda e: exit_app())

root.mainloop()

常用扩展说明

  • 单选/复选功能项:需要开关类、多选一类型的选项时,可以替换add_command()为add_checkbutton()或add_radiobutton(),适配设置类功能需求
  • 右键弹出菜单:同样用Menu创建菜单对象,绑定鼠标右键点击事件,调用菜单的post(x,y)方法即可在指定位置弹出菜单
  • 禁用菜单项:给add_command()传入state=tk.DISABLED即可让对应选项置灰不可点击,适合特定场景下屏蔽功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:45:03