当前位置: 首页 > news >正文

tkinter库的应用小示例:文本编辑器

tkinter库的应用小示例:文本编辑器

要 求

创建一个文本编辑器,功能包括,创建、打开、编辑、保存文件。一个Button小组件,命名为btn_open,用于打开要编辑的文件,一个Button小组件,命名为btn_save,用于保存文件,一个TextBox小组件,命名为txt_edit,用于创建、编辑文本文件。把两个按钮放在窗口的左边,把文本框放在右边。整个窗口的最小高度为800像素,txt_edit的最小宽度为800像素,窗口的布局应当能响应窗口尺寸的变化,txt_edit的尺寸也要随之变化,不过容纳按钮的Frame不应该随之变化。可以用.grid()布局管理器实现上述布局。网格应当由一行两列构成,左边是较窄的一列,用于容纳按钮;右边是较宽的一列,用于容纳文本框。

源码如下:

import tkinter as tk
from tkinter import filedialog, messagebox
import easyguiclass TextEditor:def __init__(self, master):self.master = masterself.master.title("简单文本编辑器")# 设置窗口最小大小self.master.minsize(width=800, height=800)# 创建Frame用于按钮self.button_frame = tk.Frame(master)self.button_frame.grid(row=0, column=0, sticky='ns')# 创建按钮self.btn_open = tk.Button(self.button_frame, text="打开", command=self.open_file)self.btn_open.pack(pady=10)self.btn_save = tk.Button(self.button_frame, text="保存", command=self.save_file)self.btn_save.pack(pady=10)# 创建文本框self.txt_edit = tk.Text(master, wrap=tk.WORD)self.txt_edit.grid(row=0, column=1, sticky='nsew')# 配置列和行的权重,使得文本框可以响应窗口尺寸变化master.grid_rowconfigure(0, weight=1)master.grid_columnconfigure(1, weight=1)def open_file(self):file_path = filedialog.askopenfilename(defaultextension=".txt",filetypes=[("Text Files", "*.txt"),("All Files", "*.*")])if file_path:try:with open(file_path, "r", encoding='utf-8') as file:content = file.read()self.txt_edit.delete(1.0, tk.END)  # 清空文本框self.txt_edit.insert(tk.END, content)  # 插入文件内容except Exception as e:messagebox.showerror("错误", f"无法打开文件: {e}")def save_file(self):file_path = filedialog.asksaveasfilename(defaultextension=".txt",filetypes=[("Text Files", "*.txt"),("All Files", "*.*")])if file_path:try:with open(file_path, "w", encoding='utf-8') as file:content = self.txt_edit.get(1.0, tk.END)  # 获取文本框中的内容file.write(content.strip())  # 写入文件except Exception as e:messagebox.showerror("错误", f"无法保存文件: {e}")if __name__ == "__main__":root = tk.Tk()app = TextEditor(root)root.mainloop()

界面如下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

功能说明:

  1. 打开文件:点击“打开”按钮会弹出文件选择对话框,选择文件后会在文本框中显示其内容。
  2. 保存文件:点击“保存”按钮会弹出保存文件对话框,用户可以输入文件名并保存当前文本框中的内容。
  3. 布局:使用 .grid() 布局管理器将按钮放在左边,文本框放在右边,同时保证窗口大小自适应,且设置了最小高度和宽度。

确保你已经安装了 tkinter 库,这通常是 Python 的标准库之一,无需额外安装。运行以上代码即可启动文本编辑器。

原创不易,请点赞、关注、和转发!!!

http://www.lryc.cn/news/459887.html

相关文章:

  • 信息抽取数据集处理——RAMS
  • SpringBoot+XXL-JOB:高效定时任务管理
  • openpyxl -- 简介
  • 滚雪球学MySQL[8.3讲]:数据库中的JSON与全文检索详解:从数据存储到全文索引的高效使用
  • position定位静态定位/绝对定位/相对定位
  • 2024年09月CCF-GESP编程能力等级认证C++编程三级真题解析
  • Web自动化Demo-PHP+Selenium
  • Python速成笔记——知识(GUI自动化处理屏幕和按键输出)
  • 计算机是如何输入存储输出汉字、图片、音频、视频的
  • springboot系列--web相关知识探索五
  • 开源商城系统crmeb phpstudy安装配置
  • 【论文阅读笔记】Bigtable: A Distributed Storage System for Structured Data
  • linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十一)--rpm管理和计划任务
  • 【C++几种单例模式解读及实现方式】
  • QT开发--串口通信
  • 数据库(至少还的再花两天 )
  • 网络安全公司及其主要产品介绍
  • orjson:高性能的Python JSON库
  • 常见几大排序算法
  • Linux下CMake入门
  • 网络资源模板--Android Studio 实现简易记事本App
  • 根据Vue对比来深入学习React 下 props 组件传值 插槽 样式操作 hooks 高阶组件 性能优化
  • HTML(六)超链接
  • 【Coroutines】Implement Lua Coroutine by Kotlin - 2
  • java计算机毕设课设—扫雷游戏(附源码、文章、相关截图、部署视频)
  • AndroidLogger 使用问题
  • 数据库常见面试
  • boxplot 绘制箱线图,添加数据点
  • 用sdkman管理多个jdk切换
  • 【AIGC】ChatGPT提示词Prompt高效编写模式:结构化Prompt、提示词生成器与单样本/少样本提示