Text Editor

题目要求:

Notepad style application that can open, edit, and save text documents. 

Add syntax highlighting and other features.

下面的代码实现了部分第一行题目要求

没有实现第二行题目要求(语法高亮)。没时间做,欢迎评论

import tkinter
from tkinter import *
from tkinter.ttk import Scrollbar

root = tkinter.Tk()  # 类的对象化, 创建一个GUI对象
root.title("TextEditor")  # 窗口名称
root.geometry("600x400")  # 窗口尺寸
enter_file = tkinter.Entry(root)  # 类的对象化, 在GUI中创建一个输入框
enter_file.pack()  # 输入框的放置(必备语句)
word = tkinter.Text(root, undo=True)   # 类的对象化, 在GUI中创建一个显示框
word.pack()
scroll_bar = Scrollbar(root)  # 类的对象化, 在GUI中创建一个滚动条
scroll_bar.config(command=word.yview)  # 关联显示框与滚动条
word.config(yscrollcommand=scroll_bar.set, width=20, height=20, background='#ffffff')
word.pack(side=LEFT, fill=BOTH, expand=1)
scroll_bar.pack(side=RIGHT, fill=Y)
menu = tkinter.Menu(root)  # 类的对象化,在GUI中创建一个菜单栏
root.config(menu=menu)   # 关联

def openfile():
    file_path = enter_file.get()  # 获取输入框的内容
    with open(file_path) as fp:
        content = fp.read()  # 读取文件
        word.delete(0.0, tkinter.END)  # 清空显示框
        word.insert(tkinter.END, content)  # 显示读取的文件


def savefile():
    content = word.get(0.0, tkinter.END)
    file_path = enter_file.get()
    with open(file_path, 'w') as fw:
        fw.write(content)   # 将显示文本框的一切内容保存到原文件,也就是编辑功能


def undo():
    word.edit_undo()  # 撤销上一步操作功能


button_o = tkinter.Button(root, text='open', command=openfile)  # 设置按钮标签与点击之后的动作
button_s = tkinter.Button(root, text='save', command=savefile)
button_o.pack()
button_s.pack()
menu.add_command(label='撤销', command=undo)  # 设置菜单栏标签与相应的动作

root.mainloop()  # 必备语句, 进入死循环  让窗口一直显示


# 调用:
# 在新打开的GUI界面之中输入txt文件的完整绝对路径,别忘记文件名后缀!
# 即可实现:打开,编辑,撤销,保存功能

 

posted @ 2020-03-28 17:37  YlnChen  阅读(411)  评论(0编辑  收藏  举报