menu = tk.Menu(root) # 创建下拉菜单 submenu = tk.Menu(menu, tearoff=0) #tearoff默认值为1 submenu.add_command(label="GaussianNB", command=func1,font=("微软雅黑 -30")) #add_command添加命令菜单项 submenu.add_command(label="KNeighborsClassifier", command=func2,font=("微软雅黑 -30")) submenu.add_command(label="决策树", command=func3,font=("微软雅黑 -30")) # 添加下拉菜单到菜单栏 menu.add_cascade(label="模型菜单", font=("微软雅黑 -20"),menu=submenu) 怎么设置菜单在界面中的具体位置更改代码
时间: 2023-10-30 17:07:10 浏览: 41
要设置菜单在界面中的具体位置,可以使用Menu组件的`post()`方法。该方法可以将菜单显示在指定的位置上。具体地,在菜单栏上单击某个菜单项后,可以在该菜单项的回调函数中使用`post()`方法将下拉菜单显示在指定位置上。例如:
```python
def show_menu(event):
menu.post(event.x_root, event.y_root)
menu = tk.Menu(root)
# ...
menu.add_cascade(label="模型菜单", font=("微软雅黑-20"), menu=submenu)
root.bind("<Button-1>", show_menu)
```
在上面的代码中,我们定义了一个回调函数`show_menu()`,该函数会在菜单栏上单击某个菜单项时被调用。在该函数中,我们使用`menu.post(event.x_root, event.y_root)`方法将下拉菜单显示在鼠标单击的位置上。最后,我们使用`root.bind("<Button-1>", show_menu)`方法将鼠标单击事件与回调函数绑定在一起,当用户单击鼠标时,就会调用`show_menu()`函数显示下拉菜单。
相关问题
# 创建菜单栏 menu_bar = tk.Menu(master) # 创建“文件”菜单 file_menu = tk.Menu(menu_bar, tearoff=0) file_menu.add_command(label="5M點檢表", command=lambda: self.read_from_excel(file_menu, "5M點檢表")) file_menu.add_command(label="Router首件检查记录表", command=lambda: self.read_from_excel1(file_menu, "Router首件检查记录表")) file_menu.add_command(label="板组作业首件检查记录表", command=lambda: self.read_from_excel2(file_menu, "板组作业首件检查记录表")) # 创建“保养”菜单 maintenance_menu = tk.Menu(menu_bar, tearoff=0) maintenance_menu.add_command(label="日保養", command=lambda: self.read_from_excel3(maintenance_menu, "日保養")) maintenance_menu.add_command(label="周保養", command=lambda: self.read_from_excel4(maintenance_menu, "周保養")) # 创建“测试”菜单 test_menu = tk.Menu(menu_bar, tearoff=0) test_menu.add_command(label="人工測試站表單", command=lambda: self.read_from_excel5(test_menu, "人工測試站表單")) test_menu.add_command(label="自動化測試站表單", command=lambda: self.read_from_excel6(test_menu, "自動化測試站表單")) # 将子菜单添加到菜单栏 menu_bar.add_cascade(label="首件確認表單", menu=file_menu) menu_bar.add_cascade(label="保养表單", menu=maintenance_menu) menu_bar.add_cascade(label="F/T表單", menu=test_menu) # 将菜单栏添加到主窗口 master.config(menu=menu_bar)將這段代碼合并未3級菜單
可以将每个子菜单创建过程合并到一个函数中,然后使用循环遍历一个包含菜单名称和对应命令的列表来创建菜单。具体代码如下:
```
def create_submenu(menu_bar, menu_name, commands):
# 创建子菜单
submenu = tk.Menu(menu_bar, tearoff=0)
for label, command in commands:
submenu.add_command(label=label, command=command)
# 将子菜单添加到菜单栏
menu_bar.add_cascade(label=menu_name, menu=submenu)
# 菜单名称和对应命令的列表
menu_list = [
("首件確認表單", [
("5M點檢表", lambda: self.read_from_excel(file_menu, "5M點檢表")),
("Router首件检查记录表", lambda: self.read_from_excel1(file_menu, "Router首件检查记录表")),
("板组作业首件检查记录表", lambda: self.read_from_excel2(file_menu, "板组作业首件检查记录表"))
]),
("保养表單", [
("日保養", lambda: self.read_from_excel3(maintenance_menu, "日保養")),
("周保養", lambda: self.read_from_excel4(maintenance_menu, "周保養"))
]),
("F/T表單", [
("人工測試站表單", lambda: self.read_from_excel5(test_menu, "人工測試站表單")),
("自動化測試站表單", lambda: self.read_from_excel6(test_menu, "自動化測試站表單"))
])
]
# 遍历菜单列表创建菜单
for menu_name, commands in menu_list:
create_submenu(menu_bar, menu_name, commands)
# 将菜单栏添加到主窗口
master.config(menu=menu_bar)
```
submenu = tk.Menu(filemenu) filemenu.add_cascade(label="Import", menu=submenu, underline=0) submenu.add_command(label="Submenu1", command=do_job)
这是一个简单的 Python 代码段,使用了 Tkinter 模块来创建一个窗口菜单。它创建一个名为 "Import" 的顶级菜单,其中包含一个名为 "Submenu1" 的子菜单。当用户单击 "Submenu1" 时,将调用名为 "do_job" 的函数。
具体来说,这些代码使用 `tk.Menu` 函数创建了一个 `filemenu` 对象,然后使用 `add_cascade` 方法将其添加到主菜单中。然后,它使用 `tk.Menu` 函数创建了一个名为 `submenu` 的子菜单,并使用 `add_command` 方法将其添加到 `filemenu` 中。最后,它指定了一个名为 `do_job` 的函数,该函数将在用户单击 "Submenu1" 时被调用。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)