用PYTHON写一个窗口记事本程序
时间: 2023-11-12 19:06:52 浏览: 180
以下是一个用Python编写的基本窗口记事本程序:
```python
import tkinter as tk
from tkinter import messagebox
from tkinter.filedialog import asksaveasfilename, askopenfilename
# 创建主窗口
root = tk.Tk()
root.title("记事本")
# 创建文本框
text_area = tk.Text(root, undo=True)
text_area.pack(expand=True, fill="both")
# 添加菜单栏
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)
# 添加文件菜单
file_menu = tk.Menu(menu_bar, tearoff=False)
# 打开文件
def open_file():
file_path = askopenfilename(defaultextension=".txt",
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
text_area.delete(1.0, tk.END)
with open(file_path, "r") as file:
text_area.insert(1.0, file.read())
file_menu.add_command(label="打开", command=open_file)
# 保存文件
def save_file():
file_path = asksaveasfilename(defaultextension=".txt",
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if file_path:
with open(file_path, "w") as file:
file.write(text_area.get(1.0, tk.END))
file_menu.add_command(label="保存", command=save_file)
# 添加分隔线和退出菜单项
file_menu.add_separator()
file_menu.add_command(label="退出", command=root.quit)
menu_bar.add_cascade(label="文件", menu=file_menu)
# 添加编辑菜单
edit_menu = tk.Menu(menu_bar, tearoff=False)
# 撤销
def undo():
try:
text_area.edit_undo()
except tk.TclError:
pass
edit_menu.add_command(label="撤销", command=undo)
# 重做
def redo():
try:
text_area.edit_redo()
except tk.TclError:
pass
edit_menu.add_command(label="重做", command=redo)
menu_bar.add_cascade(label="编辑", menu=edit_menu)
# 帮助菜单
help_menu = tk.Menu(menu_bar, tearoff=False)
# 关于
def about():
messagebox.showinfo("关于", "这是一个用Python编写的记事本程序")
help_menu.add_command(label="关于", command=about)
menu_bar.add_cascade(label="帮助", menu=help_menu)
# 运行主循环
root.mainloop()
```
这个记事本程序包含了基本的文件操作(打开和保存)、编辑操作(撤销和重做)和帮助操作(关于)。通过添加菜单栏和相关的命令函数,可以很容易地扩展它的功能。
阅读全文