menubar = tk.Menu(master) master.config(menu=menubar) # 创建文件菜单及其子菜单 filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="PA綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PA綫")) menubar.add_cascade(label="點檢綫別", menu=filemenu)修改這個菜單中子菜單的字體顔色
时间: 2024-01-30 18:03:23 浏览: 83
您可以使用`fg`属性来设置子菜单的字体颜色。下面是示例代码:
```
menubar = tk.Menu(master)
master.config(menu=menubar)
# 创建文件菜单及其子菜单
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="PA綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PA綫"), fg='blue')
menubar.add_cascade(label="點檢綫別", menu=filemenu)
```
在这段代码中,我们将子菜单的`fg`属性设置为蓝色,这是蓝色的十六进制表示。这样就可以将子菜单的字体颜色设置为蓝色了。
相关问题
class ExcelApp: def init(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) # 创建菜单栏 menubar = tk.Menu(master) master.config(menu=menubar) # 创建文件菜单及其子菜单 filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="PA綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PA綫")) filemenu.add_command(label="PB綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PB綫")) filemenu.add_command(label="Excel 3", command=lambda: self.load_excel("excel3.xlsx")) menubar.add_cascade(label="點檢綫別", menu=filemenu) # 创建帮助菜单及其子菜单 helpmenu = tk.Menu(menubar, tearoff=0) helpmenu.add_command(label="关于", command=self.show_about) menubar.add_cascade(label="帮助", menu=helpmenu) # 创建工具栏 toolbar = tk.Frame(master, height=30) tk.Button(toolbar, text="打开", command=lambda: QueryWindow(tk.Toplevel(root))).pack(side=tk.LEFT, padx=2, pady=2) tk.Button(toolbar, text="保存", command=self.save_to_excel).pack(side=tk.LEFT, padx=2, pady=2) toolbar.pack(side=tk.TOP, fill=tk.X) # 创建左侧面板 self.panel_left = tk.Frame(master, width=150, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master) self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)根據這個代碼儅用戶點擊打開按鈕時將打開一個新的窗口,在新的窗口可以根據日期,綫別查詢一個txt中相應數據内容,在添加一個可以下載按鈕,將用戶查詢的信息導入出來的代碼
以下是一个简单的代码示例,可以实现你想要的功能:
```python
import tkinter as tk
from tkinter import filedialog
class QueryWindow:
def __init__(self, master):
self.master = master
master.title("查询")
# 添加日期、线别输入框
tk.Label(master, text="日期:").grid(row=0, column=0, padx=5, pady=5)
self.date_entry = tk.Entry(master)
self.date_entry.grid(row=0, column=1, padx=5, pady=5)
tk.Label(master, text="线别:").grid(row=1, column=0, padx=5, pady=5)
self.line_entry = tk.Entry(master)
self.line_entry.grid(row=1, column=1, padx=5, pady=5)
# 添加查询按钮
tk.Button(master, text="查询", command=self.query).grid(row=2, column=0, columnspan=2, padx=5, pady=5)
# 添加下载按钮
tk.Button(master, text="下载", command=self.download).grid(row=3, column=0, columnspan=2, padx=5, pady=5)
def query(self):
# 获取日期、线别输入框中的内容
date = self.date_entry.get()
line = self.line_entry.get()
# 打开要查询的txt文件
file_path = filedialog.askopenfilename(title="选择要查询的文件", filetypes=(("Text files", "*.txt"),))
with open(file_path, "r") as f:
# 遍历文件内容,查找符合条件的行
result = []
for line in f:
if date in line and line.startswith(line):
result.append(line)
# 将查询结果显示在文本框中
self.textbox.delete("1.0", tk.END)
self.textbox.insert(tk.END, "\n".join(result))
def download(self):
# 获取查询结果
result = self.textbox.get("1.0", tk.END)
# 弹出文件保存对话框,将查询结果保存为txt文件
file_path = filedialog.asksaveasfilename(title="保存文件", defaultextension=".txt", filetypes=(("Text files", "*.txt"),))
with open(file_path, "w") as f:
f.write(result)
# 关闭窗口
self.master.destroy()
class ExcelApp:
def __init__(self, master):
self.master = master
master.title("Excel App")
# 获取屏幕的宽度和高度
screen_width = master.winfo_screenwidth()
screen_height = master.winfo_screenheight()
# 将窗口的大小设置为屏幕的大小
master.geometry("%dx%d" % (screen_width, screen_height))
# 创建菜单栏
menubar = tk.Menu(master)
master.config(menu=menubar)
# 创建文件菜单及其子菜单
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="PA綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PA綫"))
filemenu.add_command(label="PB綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PB綫"))
filemenu.add_command(label="Excel 3", command=lambda: self.load_excel("excel3.xlsx"))
menubar.add_cascade(label="點檢綫別", menu=filemenu)
# 创建帮助菜单及其子菜单
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="关于", command=self.show_about)
menubar.add_cascade(label="帮助", menu=helpmenu)
# 创建工具栏
toolbar = tk.Frame(master, height=30)
tk.Button(toolbar, text="打开", command=lambda: QueryWindow(tk.Toplevel(root))).pack(side=tk.LEFT, padx=2, pady=2)
tk.Button(toolbar, text="保存", command=self.save_to_excel).pack(side=tk.LEFT, padx=2, pady=2)
toolbar.pack(side=tk.TOP, fill=tk.X)
# 创建左侧面板
self.panel_left = tk.Frame(master, width=150, bg='lightcyan')
self.panel_left.pack(side=tk.LEFT, fill=tk.Y)
# 创建右侧面板
self.panel_right = tk.Frame(master)
self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
def load_excel(self, file_path, sheet_name=None):
pass
def show_about(self):
pass
def save_to_excel(self):
pass
root = tk.Tk()
app = ExcelApp(root)
root.mainloop()
```
注意,这只是一个简单的代码示例,你需要根据你的具体需求进行修改和完善。
class ExcelApp: def init(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) master.state('zoomed')#窗口最大化 # 创建菜单栏 menubar = tk.Menu(master) master.config(menu=menubar)# 创建文件菜单及其子菜单 filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="PA綫", command=lambda: self.load_excel(r'D:\拆分后的工作簿\新增資料夾\PA點檢.xlsx', "PA綫", "PA綫"), compound='left', image='', foreground='black', font=('Microsoft JhengHei', 12)) menubar.add_cascade(label="點檢綫別", menu=filemenu, compound='left', image='', foreground='blue', font=('Arial', 12)) # 创建左侧面板 self.panel_left = tk.Frame(master, width=150, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y)
这段代码是一个 Excel 应用程序的类定义,其中包括一个初始化函数,用于创建一个具有菜单栏和左侧面板的窗口。
在初始化函数中,首先获取了屏幕的宽度和高度,并将窗口的大小设置为屏幕的大小,以便窗口可以最大化显示。然后,创建了菜单栏和文件菜单及其子菜单,用于加载 Excel 文件中的特定工作表。最后,创建了一个左侧面板,用于显示应用程序的其他功能。
具体来说,代码中的 init() 函数包括以下几个部分:
1. 获取屏幕的宽度和高度,并将窗口的大小设置为屏幕的大小,以便窗口可以最大化显示。
```
# 获取屏幕的宽度和高度
screen_width = master.winfo_screenwidth()
screen_height = master.winfo_screenheight()
# 将窗口的大小设置为屏幕的大小
master.geometry("%dx%d" % (screen_width, screen_height))
master.state('zoomed')
```
2. 创建菜单栏和文件菜单及其子菜单,用于加载 Excel 文件中的特定工作表。
```
# 创建菜单栏
menubar = tk.Menu(master)
master.config(menu=menubar)
# 创建文件菜单及其子菜单
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="PA綫", command=lambda: self.load_excel(r'D:\拆分后的工作簿\新增資料夾\PA點檢.xlsx', "PA綫", "PA綫"), compound='left', image='', foreground='black', font=('Microsoft JhengHei', 12))
menubar.add_cascade(label="點檢綫別", menu=filemenu, compound='left', image='', foreground='blue', font=('Arial', 12))
```
3. 创建左侧面板,用于显示应用程序的其他功能。
```
# 创建左侧面板
self.panel_left = tk.Frame(master, width=150, bg='lightcyan')
self.panel_left.pack(side=tk.LEFT, fill=tk.Y)
```
需要注意的是,这段代码中的 init() 函数只是 Excel 应用程序的一个部分,还需要在类中添加其他函数和方法来实现完整的应用程序功能。
阅读全文