class MainWindow: def __init__(self, master): self.option_list = [] self.master = master master.title("點檢系統") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) #獲取點檢記錄明細路徑 self.minxi=r"D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx" # 日期标签和输入框 ri=datetime.now().strftime('%Y/%m/%d') values = [ri] self.date_label = tk.Label(master, text="點檢日期:") self.date_label.grid(row=0, column=0) self.date_entry = ttk.Combobox(master, values=values) self.date_entry.grid(row=0, column=1) self.date_entry.current(0) # 默认选中第一个选项 def read_from_excel1(self,menu,label): self.change_menu_color(menu, label) self.current_menu = "Router首件检查记录表" # 读取excel文件的代码 # 从Excel文件中读取表单并显示到窗口中的日志框中 wb = openpyxl.load_workbook(self.minxi, read_only=True) ws = wb['Router首件检查记录表']在這段代碼中如果用戶調用第二個函數時需要刪除指定的標簽和文本框,該怎麽寫
时间: 2023-11-16 14:05:32 浏览: 33
您可以在第二个函数中添加删除指定标签和文本框的代码。例如,您可以使用以下代码删除标签和文本框:
```
def delete_label_and_entry(self):
self.date_label.destroy() # 删除日期标签
self.date_entry.destroy() # 删除日期输入框
```
在需要删除标签和文本框的时候,只需要调用这个函数即可。
相关问题
class MainWindow: def __init__(self, master): self.option_list = [] self.master = master master.title("點檢系統") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height))# 创建菜单栏 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)在這個代碼中需要獲取用戶點擊的菜單欄中子菜單的名稱寫入excel中
可以使用openpyxl库来实现将用户点击的菜单栏子菜单的名称写入Excel中。
首先在类的初始化方法中创建一个Excel工作簿对象:
```
import openpyxl
class MainWindow:
def __init__(self, master):
self.workbook = openpyxl.Workbook()
# ...
```
然后在每个菜单栏子菜单的回调函数中,获取子菜单的名称并将其写入Excel中。下面以读取“5M點檢表”子菜单为例:
```
class MainWindow:
def read_from_excel(self, menu, name):
# 获取子菜单的名称
submenu_name = menu.entrycget(name, "label")
# 将子菜单名称写入Excel
sheet = self.workbook.active
sheet.cell(row=1, column=1, value=submenu_name)
```
以上代码将获取到的子菜单名称写入Excel的A1单元格中。可以根据需要修改行号和列号。
最后,记得在程序退出时保存Excel文件:
```
class MainWindow:
def __init__(self, master):
# ...
master.protocol("WM_DELETE_WINDOW", self.on_exit)
def on_exit(self):
self.workbook.save("菜单栏子菜单.xlsx")
self.master.destroy()
```
class MainWindow: def init(self, master): self.option_list = [] self.master = master master.title("點檢系統") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height))# 创建菜单栏 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分鐘后變回來
你可以在每个菜单项的command参数中添加一个函数,用来改变菜单项的颜色,并且设置一个定时器来在20分钟后将颜色改回来。以下是一个可能的实现:
```python
class MainWindow:
def __init__(self, master):
self.option_list = []
self.master = master
master.title("點檢系統")
# 获取屏幕的宽度和高度
screen_width = master.winfo_screenwidth()
screen_height = master.winfo_screenheight()
# 将窗口的大小设置为屏幕的大小
master.geometry("%dx%d" % (screen_width, screen_height))
# 创建菜单栏
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)
def change_menu_color(self, menu, label):
menu.entryconfig(label, background="red")
self.master.after(20 * 60 * 1000, lambda: menu.entryconfig(label, background="white"))
def read_from_excel(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel1(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel2(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel3(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel4(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel5(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
def read_from_excel6(self, menu, label):
self.change_menu_color(menu, label)
# 读取excel文件的代码
```
在这个实现中,我们修改了每个菜单项的command参数,将其替换为一个lambda函数,用来调用实际的函数并传递菜单对象和菜单项的标签作为参数。在每个函数中,我们首先调用change_menu_color函数,将菜单项的颜色改变为红色,并设置一个20分钟的定时器来将颜色改回来。然后,我们执行相应的操作,比如读取excel文件。
相关推荐
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)