在tkinter界面中的指定位置创建一个下拉菜单,菜单中的每一个事件都绑定一个函数代码
时间: 2024-02-26 20:56:45 浏览: 68
要在tkinter界面中的指定位置创建一个下拉菜单并绑定事件函数,可以按照以下步骤进行:
1. 创建根窗口和菜单栏,并将菜单栏添加到根窗口中。
```python
import tkinter as tk
root = tk.Tk()
# 创建菜单栏
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)
```
2. 创建下拉菜单,并将每个菜单项绑定到对应的事件函数。
```python
# 创建下拉菜单
file_menu = tk.Menu(menu_bar, tearoff=False)
# 添加菜单项并绑定事件函数
file_menu.add_command(label="打开", command=open_file)
file_menu.add_command(label="保存", command=save_file)
file_menu.add_command(label="退出", command=root.quit)
# 将下拉菜单添加到菜单栏中
menu_bar.add_cascade(label="文件", menu=file_menu)
```
在上面的代码中,我们创建了一个名为`file_menu`的下拉菜单,并将`tearoff`设置为`False`,以禁止将下拉菜单从菜单栏中拖出来(该功能在默认情况下是启用的)。
然后,我们使用`add_command()`方法将每个菜单项添加到下拉菜单中,并将其绑定到对应的事件函数(例如`open_file()`、`save_file()`和`root.quit()`)。最后,我们使用`add_cascade()`方法将下拉菜单添加到菜单栏中。
3. 指定菜单的显示位置。
```python
# 将菜单显示在指定位置
file_menu.post(100, 100)
```
在上面的代码中,我们使用`post()`方法将下拉菜单显示在指定位置(例如,横坐标为100,纵坐标为100的位置)。这里的位置是相对于屏幕的绝对坐标。如果要将菜单显示在指定的控件上,则可以使用该控件的`winfo_rootx()`和`winfo_rooty()`方法获取该控件在屏幕上的绝对坐标,然后将其作为参数传递给`post()`方法。
完整的代码示例:
```python
import tkinter as tk
def open_file():
print("打开文件")
def save_file():
print("保存文件")
# 创建根窗口和菜单栏
root = tk.Tk()
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)
# 创建下拉菜单并绑定事件函数
file_menu = tk.Menu(menu_bar, tearoff=False)
file_menu.add_command(label="打开", command=open_file)
file_menu.add_command(label="保存", command=save_file)
file_menu.add_command(label="退出", command=root.quit)
menu_bar.add_cascade(label="文件", menu=file_menu)
# 将菜单显示在指定位置
file_menu.post(100, 100)
# 进入消息循环
root.mainloop()
```
阅读全文