创建一个包含有三个菜单项的菜单,其中一个菜单项设置子菜单。请使用OptionMenu和ContextMenu两种菜单实现
时间: 2024-03-14 09:43:48 浏览: 104
菜单,包括选项菜单,子菜单,上下文菜单
4星 · 用户满意度95%
好的,以下是使用OptionMenu和ContextMenu实现的代码:
OptionMenu实现:
```python
from tkinter import *
def doNothing():
print("Nothing")
root = Tk()
# 创建菜单栏
menuBar = Menu(root)
root.config(menu=menuBar)
# 创建菜单项
fileMenu = Menu(menuBar, tearoff=0)
fileMenu.add_command(label="New", command=doNothing)
fileMenu.add_command(label="Open", command=doNothing)
fileMenu.add_command(label="Save", command=doNothing)
fileMenu.add_separator()
fileMenu.add_command(label="Exit", command=root.quit)
# 将菜单项添加到菜单栏
menuBar.add_cascade(label="File", menu=fileMenu)
# 创建子菜单项
editMenu = Menu(fileMenu, tearoff=0)
editMenu.add_command(label="Cut", command=doNothing)
editMenu.add_command(label="Copy", command=doNothing)
editMenu.add_command(label="Paste", command=doNothing)
# 将子菜单项添加到菜单项
fileMenu.add_cascade(label="Edit", menu=editMenu)
root.mainloop()
```
ContextMenu实现:
```python
from tkinter import *
def doNothing():
print("Nothing")
root = Tk()
# 创建文本框
text = Text(root, width=20, height=10)
text.pack()
# 创建上下文菜单
menu = Menu(root, tearoff=0)
menu.add_command(label="Cut", command=doNothing)
menu.add_command(label="Copy", command=doNothing)
menu.add_command(label="Paste", command=doNothing)
# 绑定上下文菜单到文本框
text.bind("<Button-3>", lambda event: menu.post(event.x_root, event.y_root))
root.mainloop()
```
以上两种方法都可以实现包含有三个菜单项的菜单,其中一个菜单项设置了子菜单。OptionMenu适用于菜单栏,ContextMenu适用于上下文菜单。
阅读全文