zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python写的一个文本编辑器

Python 一个 文本编辑
2023-06-13 09:15:16 时间

复制代码代码如下:


#!/usr/bin/envpython
#-*-coding:utf-8-*-
#=============================================================================
#    FileName:
#        Desc:
#      Author:ToughGuy
#     Version:0.0.1
#  LastChange:2013-02-2014:52:11
#     History:
#=============================================================================

fromTkinterimport*
importtkMessageBox,tkFileDialog
importplatform

#nl=os.linesep

defopenfile():
   globalfilename            #使用global声明为全局变量,方便后边的程序调用
   systype=platform.system()#判断系统类型
   ifsystype=="windows":
       basedir="c:\\"
   else:
       basedir="/"
   filename=tkFileDialog.askopenfilename(initialdir=basedir)
   try:
       fobj_r=open(filename,"r")
   exceptIOError,errmsg:
       print"***Failedopenfile:",errmsg
   else:
       editbox.delete(1.0,END)
       foreachlineinfobj_r:
           editbox.insert(INSERT,eachline)
       fobj_r.close()

defsavefile():
   save_data=editbox.get(1.0,END)
   try:
       fobj_w=open(filename,"w")
       fobj_w.writelines(save_data.encode("utf-8"))
       fobj_w.close()
       tkMessageBox.showinfo(title="提示",
               message="保存成功")
   exceptIOError,errmsg:
       tkMessageBox.showwarning(title="保存失败",message="保存出错   ")
       tkMessageBox.showwarning(title="错误信息",message=errmsg)
   exceptNameError:
       tkMessageBox.showwarning(title="保存失败",message="未打开文件")
defshowlinenum():
   tkMessageBox.showinfo(title="提示",
           message="这个功能作者现在不会写,放这里装饰用的.")
defdestroy_ui(ui):
   ui.destroy()

defaboutauthor():
   author_ui=Toplevel()
   author_ui.title("关于")
   author_ui.geometry("200x80")
   about_string=Label(author_ui,
           text="作者:ToughGuy")
   confirmbtn=Button(author_ui,text="确定",
           command=lambda:destroy_ui(author_ui))
   about_string.pack()
   confirmbtn.pack()
   #author_ui.mainloop()

defCreateMenus():
   #初始化菜单
   Menubar=Menu(root)

   #创建文件菜单
   filemenu=Menu(Menubar,tearoff=0)
   filemenu.add_command(label="打开文件",command=openfile)
   filemenu.add_command(label="保存文件",command=savefile)
   filemenu.add_command(label="退出",command=lambda:destroy_ui(root))
   Menubar.add_cascade(label="文件",menu=filemenu)

   #创建编辑菜单
   editmenu=Menu(Menubar,tearoff=0)
   editmenu.add_command(label="显示行号",command=showlinenum)
   Menubar.add_cascade(label="编辑",menu=editmenu)

   #创建帮助菜单
   helpmenu=Menu(Menubar,tearoff=0)
   helpmenu.add_command(label="关于作者",command=aboutauthor)
   Menubar.add_cascade(label="帮助",menu=helpmenu)
   root.config(menu=Menubar)

root=Tk()
root.title("文本编辑器")
root.geometry("500x400")
CreateMenus()
editbox=Text(root,width=70,height=25,bg="white")
editbox.pack(side=TOP,fill=X)
root.mainloop()