最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python基于Tkinter库实现简单文本编辑器实例

来源:动视网 责编:小采 时间:2020-11-27 14:33:21
文档

python基于Tkinter库实现简单文本编辑器实例

python基于Tkinter库实现简单文本编辑器实例:本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法。分享给大家供大家参考。具体实现方法如下: ## {{{ http://code.activestate.com/recipes/578568/ (r1) from Tkinter import * from tkSimpleDialog i
推荐度:
导读python基于Tkinter库实现简单文本编辑器实例:本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法。分享给大家供大家参考。具体实现方法如下: ## {{{ http://code.activestate.com/recipes/578568/ (r1) from Tkinter import * from tkSimpleDialog i


本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法。分享给大家供大家参考。具体实现方法如下:

## {{{ http://code.activestate.com/recipes/578568/ (r1)
from Tkinter import * 
from tkSimpleDialog import askstring
from tkFileDialog import asksaveasfilename
from tkMessageBox 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(expand=YES, fill=BOTH, side=LEFT)
 def quit(self):
 ans = askokcancel('Verify exit', "Really quit?")
 if ans: Frame.quit(self)
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=SUNKEN)
 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) 
 self.text.insert('1.0', text) 
 self.text.mark_set(INSERT, '1.0') 
 self.text.focus() 
 def gettext(self): 
 return self.text.get('1.0', END+'-1c') 
class SimpleEditor(ScrolledText): 
 def __init__(self, parent=None, file=None): 
 frm = Frame(parent)
 frm.pack(fill=X)
 Button(frm, text='Save', command=self.onSave).pack(side=LEFT)
 Button(frm, text='Cut', command=self.onCut).pack(side=LEFT)
 Button(frm, text='Paste', command=self.onPaste).pack(side=LEFT)
 Button(frm, text='Find', command=self.onFind).pack(side=LEFT)
 Quitter(frm).pack(side=LEFT)
 ScrolledText.__init__(self, parent, file=file) 
 self.text.config(font=('courier', 9, 'normal'))
 def onSave(self):
 filename = asksaveasfilename()
 if filename:
 alltext = self.gettext() 
 open(filename, 'w').write(alltext) 
 def onCut(self):
 text = self.text.get(SEL_FIRST, SEL_LAST) 
 self.text.delete(SEL_FIRST, SEL_LAST) 
 self.clipboard_clear() 
 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('SimpleEditor', 'Search String?')
 if target:
 where = self.text.search(target, INSERT, END) 
 if where: 
 print where
 pastit = where + ('+%dc' % len(target)) 
 #self.text.tag_remove(SEL, '1.0', END) 
 self.text.tag_add(SEL, where, pastit) 
 self.text.mark_set(INSERT, pastit) 
 self.text.see(INSERT) 
 self.text.focus() 
if __name__ == '__main__':
 try:
 SimpleEditor(file=sys.argv[1]).mainloop() 
 except IndexError:
 SimpleEditor().mainloop()

希望本文所述对大家的Python程序设计有所帮助。

文档

python基于Tkinter库实现简单文本编辑器实例

python基于Tkinter库实现简单文本编辑器实例:本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法。分享给大家供大家参考。具体实现方法如下: ## {{{ http://code.activestate.com/recipes/578568/ (r1) from Tkinter import * from tkSimpleDialog i
推荐度:
标签: 简单 实例 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top