一 代码
import tkinter
import tkinter.filedialog
import tkinter.colorchooser
import tkinter.messagebox
import tkinter.scrolledtext
#创建应用程序窗口
app = tkinter.Tk()
app.title('My Notepad----by cakin24')
app['width']=1000
app['height']=800
textChanged = tkinter.IntVar()
textChanged.set(0)
#当前文件名
filename =''
#创建菜单
menu = tkinter.Menu(app)
#File菜单
submenu = tkinter.Menu(menu, tearoff=0)
defOpen():
global filename
#如果内容已改变,先保存
if textChanged.get():
yesno = tkinter.messagebox.askyesno(title='保存么?',
message='要保存文件吗?')
if yesno == tkinter.YES:
Save()
filename = tkinter.filedialog.askopenfilename(title='打开文件',
filetypes=[('Text files','*.txt')])
if filename:
#清空内容,0.0是lineNumber.Column的表示方法
txtContent.delete(0.0, tkinter.END)
fp = open(filename,'r')
txtContent.insert(tkinter.INSERT,''.join(fp.readlines()))
fp.close()
#标记为尚无修改
textChanged.set(0)
#创建Open菜单并绑定菜单时间处理函数
submenu.add_command(label='打开', command=Open)
defSave():
global filename
#如果是第一次保存新建文件,则打开“另存为”窗口
ifnot filename:
SaveAs()
#如果内容发生改变,保存
elif textChanged.get():
fp = open(filename,'w')
fp.write(txtContent.get(0.0, tkinter.END))
fp.close()
textChanged.set(0)
submenu.add_command(label='保存', command=Save)
defSaveAs():
global filename
#打开“另存为”窗口
newfilename = tkinter.filedialog.asksaveasfilename(title='另存为...',
initialdir=r'c:\\',
initialfile='新文件.txt')
#如果指定了文件名,则保存文件
if newfilename:
fp = open(newfilename,'w')
fp.write(txtContent.get(0.0, tkinter.END))
fp.close()
filename = newfilename
textChanged.set(0)
submenu.add_command(label='另存为', command=SaveAs)
#添加分割线
submenu.add_separator()
defClose():
global filename
Save()
txtContent.delete(0.0, tkinter.END)
#置空文件名
filename =''
submenu.add_command(label='关闭', command=Close)
#将子菜单关联到主菜单上
menu.add_cascade(label='文件', menu=submenu)
#Edit菜单
submenu = tkinter.Menu(menu, tearoff=0)
#撤销最后一次操作
defUndo():
#启用undo标志
txtContent['undo']=True
try:
txtContent.edit_undo()
exceptExceptionas e:
pass
submenu.add_command(label='Undo', command=Undo)
defRedo():
txtContent['undo']=True
try:
txtContent.edit_redo()
exceptExceptionas e:
pass
submenu.add_command(label='Redo', command=Redo)
submenu.add_separator()
defCopy():
txtContent.clipboard_clear()
txtContent.clipboard_append(txtContent.selection_get())
submenu.add_command(label='拷贝', command=Copy)
defCut():
Copy()
#删除所选内容
txtContent.delete(tkinter.SEL_FIRST, tkinter.SEL_LAST)
submenu.add_command(label='剪切', command=Cut)
defPaste():
#如果没有选中内容,则直接粘贴到鼠标位置
#如果有所选内容,则先删除再粘贴
try:
txtContent.insert(tkinter.SEL_FIRST, txtContent.clipboard_get())
txtContent.delete(tkinter.SEL_FIRST, tkinter.SEL_LAST)
#如果粘贴成功就结束本函数,以免异常处理结构执行完成之后再次粘贴
return
exceptExceptionas e:
pass
txtContent.insert(tkinter.INSERT, txtContent.clipboard_get())
submenu.add_command(label='粘贴', command=Paste)
submenu.add_separator()
defSearch():
#获取要查找的内容
textToSearch = tkinter.simpledialog.askstring(title='Search',
prompt='What to search?')
start = txtContent.search(textToSearch,0.0, tkinter.END)
if start:
tkinter.messagebox.showinfo(title='Found', message='Ok')
#tkinter.SEL_FIRST = start
#tkinter.SEL_LAST = start
submenu.add_command(label='查找', command=Search)
menu.add_cascade(label='编辑', menu=submenu)
#Help菜单
submenu = tkinter.Menu(menu, tearoff=0)
defAbout():
tkinter.messagebox.showinfo(title='关于', message='作者:cakin24')
submenu.add_command(label='关于', command=About)
menu.add_cascade(label='帮助', menu=submenu)
#将创建的菜单关联到应用程序窗口
app.config(menu=menu)
#创建文本编辑组件
txtContent = tkinter.scrolledtext.ScrolledText(app, wrap=tkinter.WORD)
txtContent.pack(fill=tkinter.BOTH, expand=tkinter.YES)
defKeyPress(event):
textChanged.set(1)
txtContent.bind('<KeyPress>',KeyPress)
app.mainloop()
二 运行结果
相关推荐
### Python基于Tkinter库实现简单文本编辑器实例详解 #### 一、引言 Python 的 Tkinter 库是用于创建图形用户界面(GUI)的一种强大工具。它内置于标准库中,无需安装额外的包即可使用。通过 Tkinter,我们可以轻松...
本篇文章将详细介绍如何使用Python的Tkinter库中的Text组件来创建一个简单的文本编辑器。Text组件是一个功能强大的文本编辑和显示工具,能够支持多行文本输入和显示。开发者可以在其中添加文本、格式化文本、插入...
在这个项目中,“python tkinter 实现多文本文档编辑器”是一个基于Python的简单文本编辑器,用于打开、编辑和保存多个文本文件。这个作业旨在让学生掌握Tkinter库的基本用法,理解事件驱动编程,并实现多文档界面...
不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的偶来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局...
在实现“简易文本编辑器”时,开发者通常会选择一种编程语言,如C++、Python或Java,并使用相应的图形用户界面库,如Qt、wxWidgets或Tkinter来构建用户界面。程序逻辑会涉及到字符串处理、文件I/O、事件驱动编程等多...
简易文本编辑器是一种基本的文本处理工具,通常用于创建、查看和编辑纯文本文件,不包含任何格式化元素如字体、大小或颜色。这个源码是开发者为了教学、分享和学习目的而开源的,让我们来深入探讨一下文本编辑器的...
### Python基于Tkinter实现的记事本实例 在Python编程语言中,Tkinter是一个非常流行的图形用户界面(GUI)库,它内置在标准库中,因此无需额外安装即可使用。通过Tkinter,开发者能够轻松创建各种类型的桌面应用...
6. 带有自动完成和语法高亮的Python文本编辑器。这个项目不仅涉及界面设计,还包括对文件操作和文本处理的高级功能。 每个项目逐步深入,首先介绍应用程序的基本框架,然后根据需要添加更多的功能和细节。通过这些...
本教程将深入探讨如何使用Tkinter构建一个简单的文本编辑器。 首先,我们需要导入Tkinter库。在Python中,可以通过`import tkinter as tk`来引入Tkinter模块。这个库提供了一系列的类和函数,用于创建窗口、按钮、...
本文将详细介绍如何使用Python和Tkinter库实现一个简单的文本编辑器,包括程序设计、功能实现和用户交互等方面。 文本编辑器是每个程序员都应该掌握的基本工具。从简单的命令行编辑器到复杂的集成开发环境(IDE),...
记事本是一种简单的文本编辑器,可用于记录和编辑文本内容。使用Tkinter库实现记事本可以让用户方便地编辑文本文件并保存。在Tkinter中,可以使用Text组件创建文本编辑区域,用户可以在其中输入和编辑文本内容。同时...
这是一个简单的DOC编辑器,它用到了tkinter模块,拥有撤销、清除、换行、保存、打开功能。默认文本为‘请输入文本’。用到了Tk()窗口,使用了text以实现输入,button用于功能,entry输入文件名,label用于标签。 ...
在Python中,Tkinter提供了一种简单而有效的方法来创建交互式的图形界面,使得开发者无需深入理解底层的Tcl/Tk语法,就能轻松实现桌面应用的设计。 "Tkinter界面设计师"可能是一款专门用于简化Tkinter界面开发的...
这个“使用tkinter和PIL实现的类似于ps的小工具”项目,显然是利用这两个库的功能来创建一个简易的图像编辑器,类似于Adobe Photoshop。下面我们将深入探讨tkinter和PIL库,以及它们如何协同工作来实现这样的小工具...
这份代码实现了一个像素艺术编辑器应用程序。编辑器提供了像素级的绘制功能,用户可以使用各种工具进行绘制、填充和调色。应用程序采用了Python的tkinter库构建GUI界面,并在其中嵌入了Canvas类用于绘制,Toolbar类...
Tkinter支持显示和处理简单的图像,如`.gif`和`.pbm`格式,通过`PhotoImage`类实现。 7. **模块`ttk`(Themed Tk)**: ttk模块提供了风格化的控件,使得Tkinter的外观更符合现代桌面环境,如Windows Aero或macOS...
安静的文字 Quiet Text是使用Python的Tkinter GUI库制作的简单,简约的文本编辑器。 Quiet Text 旨在为编写代码和做笔记创造一个平静和分散注意力的自由文本环境。 (在 Windows 10 上截取的屏幕截图) 目录关于...
在实践中,学习Tkinter的最好方法是动手尝试创建各种类型的小程序,如计算器、文本编辑器和小游戏等。通过实践,可以加深对Tkinter编程的理解,并逐渐掌握更多的编程技巧。 最后,关于文档中重复出现的“Downloadat...
"Python初学者练手小项目-简单实现文本编辑器"就是一个很好的例子,它可以帮助学习者理解和运用Python的图形用户界面(GUI)库,如Tkinter,以及文件操作相关知识。下面将详细介绍这个项目的相关知识点。 首先,...