1.Tkinter组件之Menu菜单标签
Menu参数
Menu 组件通常被用于实现应用程序上的各种菜单,由于该组件是底层代码实现
用法
创建一个顶级菜单,你需要先创建一个菜单实例,然后使用 add() 方法将命令和其它子菜单添加进去:
1.1 实现一级菜单
(1)导入Tkinter组件包
import tkinter as tk
(2)实例化objectt,建立窗口window
window = tk.Tk()
(3)创建菜单栏,之后用add_command()方法将菜单项加入顶级菜单栏
mainmenu = tk.Menu(window)
mainmenu.add_command(label = '开始', command = callback);
mainmenu.add_command(label = '退出', command = window.quit)
(4)放置菜单栏到主窗口
window.config(menu = mainmenu)
window.mainloop()
完整代码:
import tkinter as tk
#实例化object,建立窗口window
window = tk.Tk()
def callback():
print("被调用了")
#1.创建一个顶级菜单栏
mainmenu = tk.Menu(window)
mainmenu.add_command(label = '开始', command = callback);
mainmenu.add_command(label = '退出', command = window.quit)
#放置菜单栏到主窗口
window.config(menu = mainmenu)
#程序入口
window.mainloop()
结果:
1.2 实现二级菜单
顶级菜单实现后,给顶级菜单文件、编辑创建二级菜单
(2)在菜单栏中创建一个‘filemenu’菜单项 tearoff = false表示这个菜单可以被拖拽出来
fillmenu = tk.Menu(mainmenu, tearoff = False)
(3)给’filemenu’菜单项加入子菜单
fillmenu.add_command(label = '打开', command = callback)
fillmenu.add_command(label = '保存', command = callback)
(4)子菜单加入分割线
fillmenu.add_separator()
(5)将菜单项’filemenu’添加到菜单栏
mainmenu.add_cascade(label = '文件', menu = fillmenu)
完整代码
import tkinter as tk
from tkinter import *
#实例化object,建立窗口window
window = tk.Tk()
def callback():
print("被调用了")
#1.创建菜单栏
mainmenu = tk.Menu(window)
# mainmenu.add_command(label = '开始', command = callback);
# mainmenu.add_command(label = '退出', command = window.quit)
#2.在菜单栏中创建一个‘filemenu’菜单项 tearoff = false表示这个菜单可以被拖拽出来
fillmenu = tk.Menu(mainmenu, tearoff = False)
#给'filemenu'菜单项加入子菜单
fillmenu.add_command(label = '打开', command = callback)
fillmenu.add_command(label = '保存', command = callback)
#子菜单加入分割线
fillmenu.add_separator()
fillmenu.add_command(label = '退出', command = window.quit())
#将菜单项'filemenu'添加到菜单栏
mainmenu.add_cascade(label = '文件', menu = fillmenu)
#创建另一个菜单项'editmenu'
editmenu = tk.Menu(mainmenu, tearoff = False)
editmenu.add_command(label = '剪切', command = callback)
editmenu.add_command(label = '复制', command = callback)
editmenu.add_command(label = '粘贴', command = callback)
mainmenu.add_cascade(label = '编辑', menu = editmenu)
#将菜单栏添加到主窗口中
window.config(menu = mainmenu)
#程序入口
window.mainloop()
运行结果: