首页 微博热点 正文

阿尔兹海默症,Python3.6保持1个简易的文本编辑器,氨糖

今日做一个简略的文本修改器,首要完结如下阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖功用:

  1. 能够翻开一个文本文件。
  2. 能够修改并保存修改后的文件。
  3. 能够完结剪切和张贴等简略操作。
  4. 能够完结查找操作并主动定位到查找内容地点方位。

代码运转作用如图所示:

显现文本内容

悉数代码如下:

  1. 编写一个ScrolledText类,并作为一个模块用于后边调用。
print('scrolledtext')
from tkinter import *
class ScrolledText(Frame):
def __init__(self,parent=None,text='',file=None):
Frame.__init__(self,parent)
self.pack(expand=YES,fill=BOTH)
self.makewidgets()
self.settext(text,file)
def makewidgets(self):
sbar=Scrollbar(self)
text=Text(self,relief=SUNKE女人妖N)
sbar.config(command=text.yview)
text.config(yscrollcommand=sbar.set潜行狙击)
sbar.pack(side=RIGHT,fill=Y)
text.pack(side=LEFT,expand=YES,fill=BOTH)
self.text=text
def settext(self,text='',file=None):
if file:
text=open(file,'r').read()
self.text.delete('1.0','end') # 将file文件中的一切内容铲除;1.0表明第1行第0列(行数从1开端,列数从0开端,2.1表明第2行中第2个字符)
self夏朝.text.insert('1.0',text) # 从开端方位开端将text中的内容写入到file文件
self.text.m红烧狮子头的做法ark_set(INSERT,'1.0') # 将光标刺进到文睡觉质量差本的最初方位(INSERT是一个预界说的标志,用于承认光标方位)
self.text.focus()
def gettext(self):火辣辣的情歌
return self.text.get('1.0',END+'-1c') # END+'-1c'即"end-1c",意为从END往回数榜首个字符,因为END指向的是字符串最终一个字符后边的方位,因而,该表达式实践指向的便是最终一个字符自身

保存文本文件

2.编写一个规范退出按钮的类(后边会直接经过调用模块来运用):

from tkinter import *
from tkinter.messagebox import askokcancel
class Quitter(Frame):王丽鹤
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.pack()
widget=Button(self,text='Quit',command=self.quit)
widget.pack(si林肯mkxde=LEFT,expand=YES,fill=BOT邓丽君歌曲精选H)
def quit(self):
ans=askokcancel('Verify exit','Really quit?')
if ans:Frame.quit(self)

剪切作用

3.编写主代码:

from tkinte黄熙静r import *
from tkinter.simpledialog import askstring
from tkinter.filedialog import asksaveasfilename
from quitter import Quitter
from scrolledtext import ScrolledText
class SimpleEditor(ScrolledText):
def __init__(self,parent=None,file=None):
frm=Frame(parent)
frm.pack(fill=X)
Button(frm,text='Save',command=self.o域名晋级nSave).pack(side=LEFT)
Button(frm,text='Cut',command=self.onCut).pack(side=LEFT)
Button(frm,text='Paste',command=self.onPaste).pack(side=xuxuanruiLEFT)
Button(frm,text='Find',command=self.onFind).pack(side=LEFT)
Quitter(frm).pack(side=LEFT)
ScrolledText.__init__(self,parent,阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖file=file)
self.text.config(font=('courier',9,'normal'))
def onSave(self):
filename=ask剑眉saveasfilename()
if filename:
alltext=self.gettext()
open(filename,'w').write(alltext)
def onCut(self):
text=self.text.get(SEL_FIRST,SEL_LAST)
self.text.delet婆娑e(SEL_FIRST,SEL_LAST)
self.clipboard_append(text)
def onPaste(self):
try:
text=self.selection_get(selection='CLIPBOARD') # 获取张贴板里边的内容
self.text.insert(INSERT,text) # 在光标方位处刺进张贴板中的内容
except TclError:
pass
def onFind(self):
target=askstring('SimpleEdi阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖tor','Search String?')
if target:
where=self.text.search(target,INSERT,END) # 从光标方位开端到完毕的范围内查找askstring获取到的字符qq实名认证串target的方位
if where:
print(where)
pastit=whe阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖re+('+%dc'%len(target)) # pastit代表从查找到的target的方位到target字符完毕的方位(即target)
self.text.tag_add(SEL,where,pastit) # 将target地点的字符方位符号(色彩加深,即蓝色选中作用)
self.text.focus()
self.text.see(pastit) # 完结翻滚显现,该句子能够翻滚并显现查找的字符串地点的极乐摇摇摇方位

黏贴效阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖块

编写调用代码:

if __name__=='__main阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖__':
if len(sys.argv)>1:
SimpleEdito阿尔兹海默症,Python3.6坚持1个简易的文本修改器,氨糖r(file=sys.aav网址大全r梦见鬼gv[12种饺子包法1]).mainloop()
else:
SimpleEditor().mainloop()

查找作用

4.修改一个用于测验的文本文件,能够经过python代码快速完结:

f=open('jack.txt','w')
for i in range(250):
f.write('%03d All work and no play makes Jack a dull boy.\n'%i)
f.close()

查找作用

因为调用了sys.argv规范输入,因而能够在CMD窗口中经过指令python scripy.py jack.txt来翻开jack.txt文件,并完结相关测验。

相关推荐

  • 暂无相关文章