下面是一个简单的Python记事本应用程序,使用Tkinter库来创建图形用户界面。这个程序允许用户输入文本并保存到文件中。
首先,确保你已经安装了Python和Tkinter库(Tkinter通常是Python标准库的一部分,所以大多数情况下不需要单独安装)。
以下是完整的代码:
python
import tkinter as tk
from tkinter import filedialog, messagebox
class Notepad:
def __init__(self, root):
self.root = root
self.root.title("简易记事本")
self.root.geometry("600x400")
# 创建文本框
self.text_area = tk.Text(self.root, undo=True)
self.text_area.pack(fill=tk.BOTH, expand=1)
# 创建菜单栏
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.new_file)
self.file_menu.add_command(label="打开", command=self.open_file)
self.file_menu.add_command(label="保存", command=self.save_file)
self.file_menu.add_separator()
self.file_menu.add_command(label="退出", command=self.exit_app)
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.undo_action)
self.edit_menu.add_command(label="重做", command=self.redo_action)
self.menu_bar.add_cascade(label="编辑", menu=self.edit_menu)
self.root.config(menu=self.menu_bar)
def new_file(self):
if messagebox.askokcancel("新建", "是否要清除当前内容?"):
self.text_area.delete(1.0, tk.END)
def open_file(self):
file_path = filedialog.askopenfilename(defaultextension=".txt",
filetypes=[("Text files", "*.txt"),
("All files", "*.*")])
if file_path:
with open(file_path, "r") as file:
content = file.read()
self.text_area.delete(1.0, tk.END)
self.text_area.insert(tk.END, content)
def save_file(self):
file_path = filedialog.asksaveasfilename(defaultextension=".txt",
filetypes=[("Text files", "*.txt"),
("All files", "*.*")])
if file_path:
with open(file_path, "w") as file:
content = self.text_area.get(1.0, tk.END)
file.write(content)
messagebox.showinfo("保存成功", f"文件已保存至 {file_path}")
def exit_app(self):
if messagebox.askokcancel("退出", "确定要退出吗?"):
self.root.destroy()
def undo_action(self):
try:
self.text_area.edit_undo()
except tk.TclError:
pass
def redo_action(self):
try:
self.text_area.edit_redo()
except tk.TclError:
pass
if __name__ == "__main__":
root = tk.Tk()
notepad = Notepad(root)
root.mainloop()
你可以将上述代码复制到一个.py
文件中并运行它。这将启动一个简单的记事本应用程序,带有基本的文件操作功能(新建、打开、保存)和编辑功能(撤销、重做)。
效果图: