This article mainly introduces Python based on Tkinter Library to implement a simple text editor, example analysis of Python using Tkinter Library to achieve a simple desktop application skills, with a certain reference value, the need for friends can refer to the
This example describes Python's approach to implementing a simple text editor based on the Tkinter library. Share to everyone for your reference. The implementation methods are as follows:
## {{{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 ()
I hope this article will help you with your Python programming.