用python制作文本编辑器
import tkinter
import tkinter as tk
from tkinter import *
import tkinter.filedialog
import tkinter.messagebox
import tkinter.scrolledtext
import tkinter.colorchooser
import tkinter.simpledialog#----------------------------------------一、创建窗口-------------------------------------------------
filename="" #定义空文件名
win=tk.Tk()
win["height"]=400
win["width"]=600
#-----------------------------------------------------------------------------------------------------#---------------------------------------二、功能定义区---------------------------------------------#-----------------------------------------1.菜单栏 File-----------------------------------------------------------textChanged=tk.IntVar(value=0) #字符串计数器#1.打开
def Open():global filename#1.获取字符,是否保存原来的文档if textChanged.get():yesno=tk.messagebox.askyesno(title="Save or not",message="Do you want to Save?") #询问框if yesno==tkinter.YES: Save() filename=tkinter.filedialog.askopenfilename(title="Open file",filetypes=[("Text files","*.txt")]) #打开路径框#2.打开新的文档if filename:txtContent.delete(0.0,tk.END) #删除原来的文本fp=open(filename,"rb") #读取文本txtContent.insert(tkinter.INSERT,"".join(fp.read().decode('GBK'))) #解码插入到文本编辑器fp.close() #关闭指针textChanged.set(0) #字符串置0#2.保存
def Save():global filenameif not filename:SaveAs()elif textChanged.get():fp=open(filename,"w") #创建文本fp.write(txtContent.get(0.0,tkinter.END))#将文本框的内容导入文件fp.close() #关闭textChanged.set(0) #计数器置0#3.保存到
def SaveAs():global filename#创建对话框,默认对应的路径和文件名newfilename=tkinter.filedialog.asksaveasfilename(title="Save As",initialdir=r"c:\\",initialfile="new.txt")#写入文件内容if newfilename:fp=open(newfilename,"w") fp.write(txtContent.get(0.0,tkinter.END))fp.close()filename=newfilenametextChanged.set(0)#4.关闭
def Close():global filenameSave() #保存txtContent.delete(0.0,tkinter.END) #区域置空filename="" #文件名置空#-------------------------------------------2.菜单栏 Edit-----------------------------------------------------------
#1.回退
def Undo():txtContent["undo"]=True try:txtContent.edit_undo() except Exception as e:pass#2.前进
def Redo():txtContent["undo"]=Truetry:txtContent.edit_redo()except Exception as e:pass#3.复制
def Copy():txtContent.clipboard_clear() #清空缓冲区txtContent.clipboard_append(txtContent.selection_get()) #保存到缓冲区pass#4.剪切
def Cut():Copy() #复制文本txtContent.delete(tkinter.SEL_FIRST,tkinter.SEL_LAST) #删除文本编译器的选中文本#5.粘贴
def Paste():try:txtContent.insert(tkinter.SEL_FIRST,txtContent.clipboard_get()) #获取缓冲区文本txtContent.delete(tkinter.SEL_FIRST,tkinter.SEL_LAST) #删除选中文本return except Exception as e:pass#6.查找
def Search():textToSearch=tkinter.simpledialog.askstring(title="Search",prompt="What to search?") start=txtContent.search(textToSearch,0.0,tkinter.END) if start: #查找到时,返回yestkinter.messagebox.showinfo(title="Found",message="ok")#--------------------------------------------3.菜单栏 Help-----------------------------------------------------------
#1,关于
def About():tkinter.messagebox.showinfo(title="About",message="Author:Dong Fuguo") #弹出信息框pass#------------------------------------------------------------------------------------------------------------------- #------------------------------------三、菜单栏框架----------------------------------menu1=tk.Menu(win)#菜单1 File
#---------------------------------------------------------------------
submenu=tk.Menu(menu1,tearoff=0)submenu.add_command(label="Open",command=Open)
submenu.add_separator()
submenu.add_command(label="Save",command=Save)
submenu.add_separator()
submenu.add_command(label="SaveAs",command=SaveAs)
submenu.add_separator()
submenu.add_command(label="Close",command=Close)menu1.add_cascade(label="File",menu=submenu)
#-----------------------------------------------------------------------#菜单2 Edit
#-----------------------------------------------------------------------
submenu2=tk.Menu(menu1,tearoff=0)submenu2.add_command(label="Undo",command=Undo)
submenu2.add_separator()
submenu2.add_command(label="Redo",command=Redo)
submenu2.add_separator()
submenu2.add_command(label="Copy",command=Copy)
submenu2.add_separator()
submenu2.add_command(label="Cut",command=Cut)
submenu2.add_separator()
submenu2.add_command(label="Paste",command=Paste)
submenu2.add_separator()
submenu2.add_command(label="Search",command=Search)menu1.add_cascade(label="Edit",menu=submenu2)
#------------------------------------------------------------------------#菜单3 Help
#------------------------------------------------------------------------
submenu3=tk.Menu(menu1,tearoff=0)submenu3.add_command(label="About",command=About)menu1.add_cascade(label="Help",menu=submenu3)
#------------------------------------------------------------------------#----------------------------------------------------------------------------------------------------------#------------------------------------------四、总体结构---------------------------------
#1.菜单栏
win.config(menu=menu1)#2.滑动文本框
def keyPress(event):textChanged.set(1)txtContent=tk.scrolledtext.ScrolledText(win,wrap=tk.WORD)
txtContent.pack(fill=tk.BOTH,expand=tkinter.YES) #创建txtContent.bind("<Key>",keyPress)#绑定按键识别器win.mainloop()
用python制作文本编辑器相关推荐
- python制作文本编辑器_Python小实战:制作文本编辑器
学了半年了,该施展一下了
- python实现文本编辑器_Python实现文本编辑器功能实例详解
这篇文章主要介绍了Python实现的文本编辑器功能,结合实例形式详细分析了基于wxpython实现文本编辑器所需的功能及相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现的文本编辑器功 ...
- Linuxqt制作文本编辑器_Python实操!速收藏!学习使用Python创建文本编辑器应用程序
朋友们,大家好,这次再次与作者见面,作者将发表一篇文章,介绍如何使用Python Tkinter创建文本编辑器.Tkinter是一个Python库,在您想要创建应用程序时非常有用. 立即讨论如何制作此 ...
- 飞象求职学python_用Python制作markdown编辑器
还记得在上篇提到的rest-framework,文档中提到了markdown也是可选应用. 那么这篇我们就来尝试使用markdown来制作一个在线的可以预览的editor. 安装 Python Mar ...
- python实现文本编辑器_Python-tkinter实现简单的文本编辑器
Python-tkinter实现简单的文本编辑器 利用tkinter实现简单的文本编辑器.创建一个简单的文本编辑器.可以用读文件的方式在一个文本域里显示一些文字供用户编辑. 当用户退出程序时(通过 Q ...
- Windows和Manjaro Linux配置Kate作为Python等文本编辑器
文章目录 Kate优缺点 kate相关网站 Windows配置效果 Windows下载与配置 下载 配置 运行Python脚本 运行bat文件(类似Python的配置),关键之处: 编译运行C++单文 ...
- python的文本编辑器atom_python的各种编辑器-PyScripter、pycharm 、atom、vscode、Sublime Text等等...
RT,本文主要列举python的各种编辑器-PyScripter.pycharm .atom.vscode.Sublime Text等等. PyScripter 开源 免费 windows only ...
- 2023.04.27 QT 制作文本编辑器
有改变字体.颜色.打开文件以及保存文件功能 一.代码部分: 1. 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #inc ...
- 【tkinter制作文本编辑器(3)】编辑菜单选项栏事件和右键菜单功能实现(撤销、还原、复制、粘贴、剪切、查找及全选)
编辑菜单选项栏事件功能实现 1. 编辑菜单选项栏事件功能实现步骤 1.1 撤销 1.2 恢复 1.3 剪切 1.4 复制 1.5 粘贴 1.6 全选 1.7 查找 2. 快捷键绑定 3. 右键弹出菜单 ...
最新文章
- 对顶层生存空间的考虑---及蜷缩在内层的EJB
- Linux|UNIX下LAMP环境的搭建及常见问题[连载4]
- sift计算描述子代码详解_SIFT解析(三)生成特征描述子
- android python 纠正图片,Python脚本替换Android资源(包名,图片,文件内容)
- boost::geometry::detail::overlay::get_turn_info用法的测试程序
- 再见了Spring!这个架构有点厉害,甚至干掉了Dubbo!
- 安卓数字倒数控件_安卓11来了,感受一下
- SpringMVC @Transactional注解方式事务失效的解决办法
- 怎么检测不到我的音频_新专利显示未来的AirPods可能会检测手势 并具有旋转式音量控制功能...
- PDE34 Transport equation: derivation general solution
- springboot uniapp疫情防控打卡系统源码
- 物联网通信消息队列客户端-MQTT简介
- .length和.length()
- 骗你不是人 硬盘传输速度提升4倍的方法
- TCP SYN-Flood攻击
- Python爬取B站排行榜前100视频信息!
- 台灯是白炽灯好,是LED护眼灯好?推荐对眼睛舒适的护眼台灯
- 全手动搭建Kubernetes集群——Master管理节点和Node工作节点部署
- 机器学习 --- 感知机
- mysql字符排序规则utf8mb4_0900_ai_ci修改为utf8_general_ci