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

功能说明:

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

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

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

相关文章
|
7月前
|
Python
python 获取剪切板的内容
python 获取剪切板的内容
107 0
|
2月前
|
Python
tkinter库的应用小示例:文本编辑器
tkinter库的应用小示例:文本编辑器
37 2
|
2月前
|
Linux iOS开发 MacOS
使用 Python 实现复制粘贴的功能
使用 Python 实现复制粘贴的功能
27 0
|
7月前
|
数据安全/隐私保护 开发者 索引
Python 简易图形界面库easygui 对话框大全(续)
Python 简易图形界面库easygui 对话框大全(续)
122 1
Python 简易图形界面库easygui 对话框大全(续)
|
7月前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
385 0
|
7月前
|
数据安全/隐私保护 开发者 索引
Python 简易图形界面库easygui 对话框大全
EasyGUI库提供了一个简单而直观的方式来创建基本的图形用户界面,无需深入了解复杂的GUI编程概念。EasyGUI是一个用于非常简单的Python GUI编程的库。与Tkinter等更高级的库相比,EasyGUI通过提供一系列预构建的对话框和简单的函数调用来简化GUI开发过程。这使得开发者可以专注于应用程序的逻辑,而不是花费大量时间在界面设计上。
164 1
Python 简易图形界面库easygui 对话框大全
|
7月前
|
Python
基于Python tkinter截图
基于Python tkinter截图
66 0
|
7月前
|
机器学习/深度学习 数据安全/隐私保护 UED
python中tkinter实现GUI程序:三个实例
python中tkinter实现GUI程序:三个实例
205 0
|
安全 UED Python
【100天精通python】Day36:GUI界面编程_Tkinter高级功能操作和示例
【100天精通python】Day36:GUI界面编程_Tkinter高级功能操作和示例
255 0
|
前端开发 Python
Python中tkinter模块的常用参数总结
Python中tkinter模块的常用参数总结
243 0
下一篇
DataWorks