参考window记事本图,下图, 使用Python语言设计编写一款个人日记本软件 设计个人日记本软件的界面 2 设计软件的菜单 包括,文件、编辑、字体、工作模式、帮助,可以添加更多的菜单,每添加一个就多给2分。 3 编写代码实现文件功能,包括 打开、关闭、保持和删除等。 4 编写代码实现编辑功能,包括 复制、剪切、粘贴,全选等。 5 编写代码实现字体功能,包括 设置字体、设置字号、设置字颜色。 6 编写代码实现工作模式功能,包括 白天模式、夜间模式。 7 编写代码实现帮助功能,包括软件的使用 和作者的信息。 8 自定义功能 ,实现自己的特色功能的代码
时间: 2024-02-09 12:10:53 浏览: 27
软件工程课程设计实验样本.doc
非常感谢您的问题,以下是参考代码:
```python
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
from tkinter.colorchooser import askcolor
from tkinter.filedialog import askopenfilename, asksaveasfilename
import os
class DiaryApp:
def __init__(self):
self.root = tk.Tk()
self.root.title("个人日记本")
self.root.geometry("600x400")
# 创建菜单栏
self.menu_bar = tk.Menu(self.root)
# 创建文件菜单
self.file_menu = tk.Menu(self.menu_bar, tearoff=0)
self.file_menu.add_command(label="打开", command=self.open_file)
self.file_menu.add_command(label="保存", command=self.save_file)
self.file_menu.add_command(label="另存为", command=self.save_as_file)
self.file_menu.add_separator()
self.file_menu.add_command(label="关闭", command=self.close_file)
self.menu_bar.add_cascade(label="文件", menu=self.file_menu)
# 创建编辑菜单
self.edit_menu = tk.Menu(self.menu_bar, tearoff=0)
self.edit_menu.add_command(label="复制", command=self.copy)
self.edit_menu.add_command(label="剪切", command=self.cut)
self.edit_menu.add_command(label="粘贴", command=self.paste)
self.edit_menu.add_separator()
self.edit_menu.add_command(label="全选", command=self.select_all)
self.menu_bar.add_cascade(label="编辑", menu=self.edit_menu)
# 创建字体菜单
self.font_menu = tk.Menu(self.menu_bar, tearoff=0)
self.font_menu.add_command(label="设置字体", command=self.set_font)
self.font_menu.add_command(label="设置字号", command=self.set_font_size)
self.font_menu.add_command(label="设置字颜色", command=self.set_font_color)
self.menu_bar.add_cascade(label="字体", menu=self.font_menu)
# 创建工作模式菜单
self.mode_menu = tk.Menu(self.menu_bar, tearoff=0)
self.mode_menu.add_radiobutton(label="白天模式", command=self.set_light_mode)
self.mode_menu.add_radiobutton(label="夜间模式", command=self.set_dark_mode)
self.menu_bar.add_cascade(label="工作模式", menu=self.mode_menu)
# 创建帮助菜单
self.help_menu = tk.Menu(self.menu_bar, tearoff=0)
self.help_menu.add_command(label="软件使用", command=self.show_help)
self.help_menu.add_command(label="作者信息", command=self.show_author)
self.menu_bar.add_cascade(label="帮助", menu=self.help_menu)
# 创建自定义菜单
self.custom_menu = tk.Menu(self.menu_bar, tearoff=0)
self.custom_menu.add_command(label="自定义功能1", command=self.custom_func1)
self.custom_menu.add_command(label="自定义功能2", command=self.custom_func2)
self.menu_bar.add_cascade(label="自定义", menu=self.custom_menu)
self.root.config(menu=self.menu_bar)
# 创建文本框
self.text = tk.Text(self.root, font=("微软雅黑", 12))
self.text.pack(expand=True, fill="both")
# 文件功能实现
def open_file(self):
file_path = askopenfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
self.text.delete("1.0", tk.END)
with open(file_path, "r") as file:
self.text.insert(tk.END, file.read())
def save_file(self):
file_path = self.file_path
if file_path:
with open(file_path, "w") as file:
file.write(self.text.get("1.0", tk.END))
else:
self.save_as_file()
def save_as_file(self):
file_path = asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
with open(file_path, "w") as file:
file.write(self.text.get("1.0", tk.END))
self.file_path = file_path
def close_file(self):
if messagebox.askyesno("关闭文件", "确认关闭文件吗?"):
self.text.delete("1.0", tk.END)
self.file_path = None
# 编辑功能实现
def copy(self):
self.text.event_generate("<<Copy>>")
def cut(self):
self.text.event_generate("<<Cut>>")
def paste(self):
self.text.event_generate("<<Paste>>")
def select_all(self):
self.text.tag_add("sel", "1.0", tk.END)
# 字体功能实现
def set_font(self):
font_name = askfont(self.text)["family"]
self.text.configure(font=(font_name, self.text["font"].split()[1]))
def set_font_size(self):
font_size = askinteger("字号", "请输入字号:", initialvalue=int(self.text["font"].split()[1]))
if font_size:
self.text.configure(font=(self.text["font"].split()[0], font_size))
def set_font_color(self):
color = askcolor(color=self.text["fg"])[1]
if color:
self.text.configure(fg=color)
# 工作模式实现
def set_light_mode(self):
self.root.configure(bg="white")
self.text.configure(bg="white", fg="black")
def set_dark_mode(self):
self.root.configure(bg="black")
self.text.configure(bg="black", fg="white")
# 帮助功能实现
def show_help(self):
messagebox.showinfo("软件使用", "请参考软件说明文档")
def show_author(self):
messagebox.showinfo("作者信息", "作者:xxx")
# 自定义功能实现
def custom_func1(self):
self.text.insert(tk.INSERT, "这是自定义功能1")
def custom_func2(self):
self.text.insert(tk.INSERT, "这是自定义功能2")
def run(self):
self.file_path = None
self.root.mainloop()
if __name__ == "__main__":
app = DiaryApp()
app.run()
```
注意:该代码仅供参考,实现细节和功能可以根据实际需求进行修改和完善。
阅读全文