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

首頁(yè) > 編程 > Python > 正文

python基于Tkinter庫(kù)實(shí)現(xiàn)簡(jiǎn)單文本編輯器實(shí)例

2019-11-25 17:32:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了python基于Tkinter庫(kù)實(shí)現(xiàn)簡(jiǎn)單文本編輯器的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

## {{{ 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()

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 怀安县| 明溪县| 武功县| 敖汉旗| 抚松县| 黎平县| 汝阳县| 台湾省| 敦化市| 和田县| 六枝特区| 牡丹江市| 秭归县| 黄平县| 江川县| 皮山县| 大邑县| 忻州市| 自贡市| 恩平市| 黎平县| 神池县| 南丰县| 南华县| 京山县| 土默特右旗| 轮台县| 潜山县| 山东省| 芒康县| 逊克县| 嘉祥县| 鄢陵县| 邹平县| 文昌市| 石泉县| 临泉县| 大宁县| 尤溪县| 烟台市| 固镇县|