文本编辑器。学习五天Python,新手第一次发.,,#!/usr/bin/e
#!/usr/bin/env python#-*- coding: utf-8 -*-from Tkinter import *import tkMessageBox,tkFileDialogimport platform# nl = os.linesepdef openfile(): global filename # 使用global声明为全局变量,方便后边的程序调用 systype = platform.system() # 判断系统类型 if systype == 'windows': basedir = 'c:\\\\' else: basedir = '/' filename = tkFileDialog.askopenfilename(initialdir=basedir) try: fobj_r = open(filename, 'r') except IOError, errmsg: print '*** Failed open file:', errmsg else: editbox.delete(1.0, END) for eachline in fobj_r: editbox.insert(INSERT, eachline) fobj_r.close()def savefile(): save_data = editbox.get(1.0, END) try: fobj_w = open(filename, 'w') fobj_w.writelines(save_data.encode('utf-8')) # 感谢OSC-骠骑将军 指教 fobj_w.close() tkMessageBox.showinfo(title='提示', message='保存成功') except IOError, errmsg: tkMessageBox.showwarning(title='保存失败', message='保存出错 ') tkMessageBox.showwarning(title='错误信息', message=errmsg) except NameError: tkMessageBox.showwarning(title='保存失败', message='未打开文件')def showlinenum(): tkMessageBox.showinfo(title='提示', message='这个功能作者现在不会写,放这里装饰用的.')def destroy_ui(ui): ui.destroy()def aboutauthor(): author_ui = Toplevel() author_ui.title('关于') author_ui.geometry('200x80') about_string = Label(author_ui, text="作者: ToughGuy\\n\\n主页: http://www.techzhai.net/") confirmbtn = Button(author_ui, text='确定', command=lambda:destroy_ui(author_ui)) about_string.pack() confirmbtn.pack() # author_ui.mainloop()def CreateMenus(): # 初始化菜单 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()#该片段来自于http://byrx.net
评论关闭