📅  最后修改于: 2023-12-03 15:19:32.597000             🧑  作者: Mango
在Python中,我们可以使用Tkinter模块来创建一个简单的记事本程序。Tkinter是Python的标准图形用户界面(GUI)工具包,因此无需安装即可使用。
从Python的标准库中导入Tkinter模块,然后创建一个Tkinter的主窗口对象:
import tkinter as tk
root = tk.Tk()
我们可以使用Tkinter中的Text组件来创建编辑区域,定义一些相关参数如下:
# 创建文本编辑区域
text = tk.Text(root, height=20, width=50)
# 设置文本编辑区域内文字的字体和大小
text.config(font=("Arial", 12))
# 创建垂直滚动条,并将其关联到文本编辑区域
scrollbar = tk.Scrollbar(root, command=text.yview)
text.config(yscrollcommand=scrollbar.set)
# 显示文本编辑区域和滚动条
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
在应用程序窗口的顶部区域添加菜单栏,包括文件菜单、编辑菜单、格式菜单和帮助菜单:
# 创建菜单栏
menu_bar = tk.Menu(root)
# 创建击项,添加到菜单栏中
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="新建")
file_menu.add_command(label="打开")
file_menu.add_command(label="保存")
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=0)
edit_menu.add_command(label="剪切")
edit_menu.add_command(label="复制")
edit_menu.add_command(label="粘贴")
menu_bar.add_cascade(label="编辑", menu=edit_menu)
format_menu = tk.Menu(menu_bar, tearoff=0)
format_menu.add_command(label="格式化")
format_menu.add_command(label="字体")
menu_bar.add_cascade(label="格式", menu=format_menu)
help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="关于")
menu_bar.add_cascade(label="帮助", menu=help_menu)
# 显示菜单栏
root.config(menu=menu_bar)
在窗口的底部区域添加一些其他组件和按钮:
# 创建标签和消息框
status_bar = tk.Label(root, text="准备就绪", bd=1, relief=tk.SUNKEN, anchor=tk.W)
status_bar.pack(side=tk.BOTTOM, fill=tk.X)
# 创建按钮
button = tk.Button(root, text="保存", command=save_file)
button.pack(side=tk.RIGHT)
添加保存文件的功能:
def save_file():
# 获取文本编辑区域内的文本
text_output = text.get("1.0", tk.END)
# 弹出文件对话框以获取保存文件的路径
file_path = tk.filedialog.asksaveasfilename(defaultextension=".txt")
# 将文本保存到文件中
with open(file_path, "w") as file:
file.write(text_output)
将上述代码合并并运行程序:
import tkinter as tk
import tkinter.filedialog as filedialog
root = tk.Tk()
root.title("记事本")
# 创建文本编辑区域
text = tk.Text(root, height=20, width=50)
text.config(font=("Arial", 12))
scrollbar = tk.Scrollbar(root, command=text.yview)
text.config(yscrollcommand=scrollbar.set)
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
# 创建菜单栏
menu_bar = tk.Menu(root)
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="新建")
file_menu.add_command(label="打开")
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=0)
edit_menu.add_command(label="剪切")
edit_menu.add_command(label="复制")
edit_menu.add_command(label="粘贴")
menu_bar.add_cascade(label="编辑", menu=edit_menu)
format_menu = tk.Menu(menu_bar, tearoff=0)
format_menu.add_command(label="格式化")
format_menu.add_command(label="字体")
menu_bar.add_cascade(label="格式", menu=format_menu)
help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="关于")
menu_bar.add_cascade(label="帮助", menu=help_menu)
root.config(menu=menu_bar)
# 创建标签和消息框
status_bar = tk.Label(root, text="准备就绪", bd=1, relief=tk.SUNKEN, anchor=tk.W)
status_bar.pack(side=tk.BOTTOM, fill=tk.X)
# 创建按钮
button = tk.Button(root, text="保存", command=save_file)
button.pack(side=tk.RIGHT)
# 添加保存文件的功能
def save_file():
# 获取文本编辑区域内的文本
text_output = text.get("1.0", tk.END)
# 弹出文件对话框以获取保存文件的路径
file_path = tk.filedialog.asksaveasfilename(defaultextension=".txt")
# 将文本保存到文件中
with open(file_path, "w") as file:
file.write(text_output)
# 运行程序
root.mainloop()
这就是一个简单记事本程序的完整代码。