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

简介: 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 easygui

class TextEditor:
    def __init__(self, master):
        self.master = master
        self.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()

界面如下图:
image.png

功能说明:

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

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

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

相关文章
|
3月前
|
存储 JavaScript 前端开发
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
文章展示了在Vue项目中通过集成Quill富文本编辑器实现公告功能的完整开发过程,包括前端的公告发布、修改、删除操作以及后端的数据存储和处理逻辑。
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
|
6月前
|
定位技术
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
58 0
|
前端开发 JavaScript API
前端封装库/工具库的编辑器之TinyMCE
在现代前端开发中,富文本编辑器是一个非常重要的组成部分。其中,TinyMCE 是一个备受欢迎的 JavaScript 富文本编辑器库。
297 1
|
前端开发 JavaScript 搜索推荐
前端封装库/工具库的编辑器之UEditor
随着互联网时代的到来,Web应用程序的内容创作和编辑变得越来越重要。而为了更高效地进行内容编辑和管理,前端封装库/工具库的出现成为了一个非常好的解决方案。其中一个经典的编辑器就是UEditor。
136 0
|
前端开发 JavaScript API
前端封装库/工具库的编辑器之CKEditor
在现代前端开发中,富文本编辑器是一个非常重要的组成部分。其中,CKEditor 是一个备受欢迎的 JavaScript 富文本编辑器库。
198 0
|
前端开发 API 容器
前端封装库/工具库的编辑器之Draft.js
在现代前端开发中,富文本编辑器是一个非常重要的组成部分。其中,Draft.js 是一个备受欢迎的 React 富文本编辑器库。
861 0
|
存储 前端开发 JavaScript
前端封装库/工具库的编辑器之Slate.js
随着互联网时代的到来,Web应用程序的内容创作和编辑变得越来越重要。而为了更高效地进行内容编辑和管理,前端封装库/工具库的出现成为了一个非常好的解决方案。其中一个备受关注的编辑器就是Slate.js。
739 0
|
前端开发 JavaScript IDE
封装库/工具库中重要概念之编辑器
在前端开发中,编辑器(Code Editor)是一项非常重要的工具,它可以帮助我们更加高效地编写和编辑代码。虽然市面上已经有了许多强大的编辑器,但是使用封装库/工具库可以帮助我们更加方便地集成编辑器到我们的项目中
121 0
|
存储 图形学 索引
Unity 编辑器开发实战【Custom Editor】- AudioDatabase Editor 音频库编辑器
Unity 编辑器开发实战【Custom Editor】- AudioDatabase Editor 音频库编辑器
244 1
Unity 编辑器开发实战【Custom Editor】- AudioDatabase Editor 音频库编辑器