python写的一个文本编辑器


Posted in Python onJanuary 23, 2014
#!/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 相关文章推荐
学习python处理python编码问题
Mar 13 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
python使用mysql的两种使用方式
Mar 07 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
pytorch 带batch的tensor类型图像显示操作
May 20 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 Python
Python加密技术之RSA加密解密的实现
Apr 08 Python
python生成指定长度的随机数密码
Jan 23 #Python
python使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 #Python
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 #Python
pyside写ui界面入门示例
Jan 22 #Python
pyqt和pyside开发图形化界面
Jan 22 #Python
python检测lvs real server状态
Jan 22 #Python
python使用rsa加密算法模块模拟新浪微博登录
Jan 22 #Python
You might like
第十一节 重载 [11]
2006/10/09 PHP
PHP分页显示制作详细讲解
2006/12/05 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
Python类的用法实例浅析
2015/05/27 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python流程控制 if else实现解析
2019/09/02 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
explicit和implicit的含义
2012/11/15 面试题
护士自我评价范文
2014/01/25 职场文书
职业女性的职业规划
2014/03/04 职场文书
求职信标题怎么写
2014/05/26 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
升学宴学生致辞
2015/09/29 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸