国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python基于Tkinter庫實現簡單文本編輯器實例

2020-02-23 01:06:24
字體:
來源:轉載
供稿:網友

本文實例講述了python基于Tkinter庫實現簡單文本編輯器的方法。分享給大家供大家參考。具體實現方法如下:

## {{{ http://code.activestate.com/recipes/578568/ (r1)from Tkinter import * from tkSimpleDialog import askstringfrom tkFileDialog  import asksaveasfilenamefrom 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()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 顺平县| 达拉特旗| 宁晋县| 洪泽县| 敖汉旗| 梅河口市| 大洼县| 罗城| 光山县| 哈密市| 鄂托克旗| 平定县| 郁南县| 苍梧县| 班戈县| 景东| 秦皇岛市| 依兰县| 孝义市| 金湖县| 镇安县| 滨州市| 大城县| 盐边县| 蛟河市| 鹿泉市| 白玉县| 宁河县| 湖州市| 桐梓县| 伊通| 嵊泗县| 辽中县| 乌兰察布市| 石渠县| 余干县| 手机| 深圳市| 嫩江县| 灵台县| 双辽市|