# 创建菜单栏 menu_bar = tk.Menu(master) # 创建“文件”菜单 file_menu = tk.Menu(menu_bar, tearoff=0) file_menu.add_command(label="5M點檢表", command=self.read_from_excel) file_menu.add_command(label="Router首件检查记录表", command=self.read_from_excel1) file_menu.add_command(label="板组作业首件检查记录表", command=self.read_from_excel2) # 创建“保养”菜单 maintenance_menu = tk.Menu(menu_bar, tearoff=0) maintenance_menu.add_command(label="日保養", command=self.read_from_excel3) maintenance_menu.add_command(label="周保養", command=self.read_from_excel4) # 创建“测试”菜单 test_menu = tk.Menu(menu_bar, tearoff=0) test_menu.add_command(label="人工測試站表單", command=self.read_from_excel5) test_menu.add_command(label="自動化測試站表單", command=self.read_from_excel6) # 将子菜单添加到菜单栏 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)將這個代碼中的菜單欄位添加儅用戶點擊某個菜單時將相應的菜單變個顔色,20分鐘后變回來
时间: 2023-07-16 11:13:27 浏览: 110
你可以使用`after()`方法来设置定时器,然后在定时器到达时重新设置菜单的颜色。下面是一个示例代码:
```python
def change_menu_color(menu):
menu.configure(background="red") # 设置菜单背景颜色为红色
def reset_menu_color(menu):
menu.configure(background="SystemButtonFace") # 设置菜单背景颜色为默认颜色
# 在菜单被点击时调用这个函数
def menu_clicked(menu):
change_menu_color(menu)
root.after(1200000, reset_menu_color, menu) # 设置20分钟后重置菜单颜色
# 创建菜单栏
menu_bar = tk.Menu(master)
# 创建“文件”菜单
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="5M點檢表", command=lambda: menu_clicked(file_menu))
file_menu.add_command(label="Router首件检查记录表", command=lambda: menu_clicked(file_menu))
file_menu.add_command(label="板组作业首件检查记录表", command=lambda: menu_clicked(file_menu))
# 创建“保养”菜单
maintenance_menu = tk.Menu(menu_bar, tearoff=0)
maintenance_menu.add_command(label="日保養", command=lambda: menu_clicked(maintenance_menu))
maintenance_menu.add_command(label="周保養", command=lambda: menu_clicked(maintenance_menu))
# 创建“测试”菜单
test_menu = tk.Menu(menu_bar, tearoff=0)
test_menu.add_command(label="人工測試站表單", command=lambda: menu_clicked(test_menu))
test_menu.add_command(label="自動化測試站表單", command=lambda: menu_clicked(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)
```
在上面的代码中,当菜单被点击时,会调用`menu_clicked()`函数,将相应的菜单对象作为参数传递给它。`menu_clicked()`函数会调用`change_menu_color()`函数来将菜单背景颜色设置为红色,并使用`after()`方法设置一个定时器,在20分钟后调用`reset_menu_color()`函数将菜单颜色重置为默认颜色。注意,在使用`after()`方法时,需要将函数名和参数作为额外的参数传递给它。这可以通过使用`lambda`表达式来实现。
阅读全文