zoukankan      html  css  js  c++  java
  • 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文件的完整绝对路径,别忘记文件名后缀!
    # 即可实现:打开,编辑,撤销,保存功能
    May we all proceed with wisdom and grace. https://www.cnblogs.com/YlnChen/
  • 相关阅读:
    查看mysql版本的四种方法及常用命令
    newInstance和new的区别(good)
    Citrix 服务器虚拟化之六 Xenserver虚拟机创建与快照
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 2的次幂表示
    Java实现 蓝桥杯 算法训练 2的次幂表示
    Java实现 蓝桥杯 算法训练 前缀表达式
    Java实现 蓝桥杯 算法训练 前缀表达式
  • 原文地址:https://www.cnblogs.com/YlnChen/p/12588425.html
Copyright © 2011-2022 走看看