ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tkinter之菜单Menu

2021-06-15 13:35:44  阅读:193  来源: 互联网

标签:do 菜单 tkinter Menu label add command menu


1、基本用法

Menu() 创建菜单

add_command() 添加命令label

from tkinter import *
from tkinter import messagebox


def do(name):
    messagebox.showinfo('提示信息', f'你点击了{name}')


win = Tk()  # 窗口
menu_main = Menu(win)  # 创建主菜单
menu_sub = Menu(menu_main)  # 创建子菜单
menu_sub.add_command(label='子菜单1', command=lambda x='子菜单1': do(x))  # 一个子菜单
menu_sub.add_command(label='子菜单2', command=lambda x='子菜单2': do(x))  # 一个子菜单
menu_sub.add_command(label='子菜单3', command=lambda x='子菜单3': do(x))  # 一个子菜单
menu_main.add_cascade(label='主菜单', menu=menu_sub)  # 添加子菜单到主菜单
win.config(menu=menu_main)  # 设置主菜单到界面
win.mainloop()

运行截图

 

 2、多个主菜单

from tkinter import *
from tkinter import messagebox


def do(name):
    messagebox.showinfo('提示信息', f'你点击了{name}')


win = Tk()  # 窗口
menu = Menu(win)  # 创建主菜单
menu_main = Menu(menu)  # 创建主菜单1
menu_main.add_command(label='子菜单a', command=lambda: do('子菜单a'))  # 子菜单
menu_main.add_command(label='子菜单b', command=lambda: do('子菜单b'))  # 子菜单
menu_main.add_command(label='子菜单c', command=lambda: do('子菜单c'))  # 子菜单

menu_main2 = Menu(menu)  # 创建主菜单2
menu_main2.add_command(label='子菜单A', command=lambda: do('子菜单A'))  # 子菜单
menu_main2.add_command(label='子菜单B', command=lambda: do('子菜单B'))  # 子菜单
menu_main2.add_command(label='子菜单C', command=lambda: do('子菜单C'))  # 子菜单

menu.add_cascade(label='主菜单1', menu=menu_main)  # 添加主菜单1到主菜单上
menu.add_cascade(label='主菜单2', menu=menu_main2)  # 添加主菜单2到主菜单上
win.config(menu=menu)  # 设置主菜单到界面
win.mainloop()

运行截图

 

 3、二级子菜单(多级子菜单同理)

from tkinter import *
from tkinter import messagebox


def do(name):
    messagebox.showinfo('提示信息', f'你点击了{name}')


win = Tk()  # 窗口
menu = Menu(win)  # 创建主菜单
menu_main = Menu(menu)  # 创建主菜单1
menu_main.add_command(label='子菜单a', command=lambda: do('子菜单a'))  # 子菜单
menu_main.add_command(label='子菜单b', command=lambda: do('子菜单b'))  # 子菜单
menu_main.add_command(label='子菜单c', command=lambda: do('子菜单c'))  # 子菜单

menu_main2 = Menu(menu)  # 创建主菜单2
menu_main2.add_command(label='子菜单A', command=lambda: do('子菜单A'))  # 子菜单
menu_main2.add_command(label='子菜单B', command=lambda: do('子菜单B'))  # 子菜单
menu_main2.add_command(label='子菜单C', command=lambda: do('子菜单C'))  # 子菜单

menu_main21 = Menu(menu_main2)  # 创建主菜单21
menu_main21.add_command(label='子菜单1', command=lambda: do('子菜单1'))  # 子菜单
menu_main21.add_command(label='子菜单2', command=lambda: do('子菜单2'))  # 子菜单
menu_main21.add_command(label='子菜单3', command=lambda: do('子菜单3'))  # 子菜单
menu_main2.add_cascade(label='子菜单D', menu=menu_main21)

menu.add_cascade(label='主菜单1', menu=menu_main)  # 添加主菜单1到主菜单上
menu.add_cascade(label='主菜单2', menu=menu_main2)  # 添加主菜单2到主菜单上
win.config(menu=menu)  # 设置主菜单到界面
win.mainloop()

运行截图

标签:do,菜单,tkinter,Menu,label,add,command,menu
来源: https://www.cnblogs.com/rainbow-tan/p/14885095.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有