python写的一个文本编辑器

 更新时间:2014年01月23日 09:46:00   作者:  
这篇文章主要介绍了python写的一个文本编辑器,大家参考使用吧

复制代码 代码如下:

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

from Tkinter import *
import tkMessageBox,tkFileDialog
import platform

# nl = os.linesep

def 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'))
        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")
    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()

相关文章

  • python中pow函数用法及功能说明

    python中pow函数用法及功能说明

    在本篇文章里小编给大家整理的是一篇关于python中pow函数用法及功能说明内容,有需要的朋友们可以学习下。
    2020-12-12
  • Python中os模块功能与用法详解

    Python中os模块功能与用法详解

    这篇文章主要介绍了Python中os模块功能与用法,总结分析了Python os模块基本功能、内置函数、使用方法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • pandas学习之df.fillna的具体使用

    pandas学习之df.fillna的具体使用

    本文主要介绍了pandas学习之df.fillna的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • pandas.loc 选取指定列进行操作的实例

    pandas.loc 选取指定列进行操作的实例

    今天小编就为大家分享一篇pandas.loc 选取指定列进行操作的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python爬虫之m3u8文件里提取小视频的正确姿势

    Python爬虫之m3u8文件里提取小视频的正确姿势

    本文给大家分享如何正确提取m3u8文件里的.ts视频,并合成完整的.mp4格式视频,通过图文实例代码的形式给大家介绍的非常详细,对Python提取m3u8文件小视频感兴趣的朋友一起看看吧
    2021-05-05
  • python获得命令行输入的参数的两种方式

    python获得命令行输入的参数的两种方式

    这篇文章主要介绍了python获得命令行输入的参数,本文通过两种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • python三方库之requests的快速上手

    python三方库之requests的快速上手

    这篇文章主要介绍了python三方库之requests的快速上手,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 详解django中视图函数的FBV和CBV

    详解django中视图函数的FBV和CBV

    FBV是指视图函数以普通函数的形式,CBV是指视图函数以类的方式,这篇文章主要介绍了django中视图函数的FBV和CBV,需要的朋友可以参考下
    2022-08-08
  • tensorflow保持每次训练结果一致的简单实现

    tensorflow保持每次训练结果一致的简单实现

    今天小编就为大家分享一篇tensorflow保持每次训练结果一致的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python中停止线程的几种常用方法

    python中停止线程的几种常用方法

    这篇文章主要介绍了python中停止线程的几种常用方法,在Python中停止线程没有直接方法,但可以通过标志变量、守护线程或抛出异常来实现,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10

最新评论