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中字典的基础知识归纳小结
Aug 19 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python3使用GUI统计代码量
Sep 18 Python
Python实现CNN的多通道输入实例
Jan 17 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
Python爬虫之Selenium实现键盘事件
Dec 04 Python
python 统计代码耗时的几种方法分享
Apr 02 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
php header函数的常用http头设置
2015/06/25 PHP
php构造函数与析构函数
2016/04/23 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
js实现内置计时器
2019/12/16 Javascript
python在指定目录下查找gif文件的方法
2015/05/04 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
python实现机器人行走效果
2018/01/29 Python
Python Grid使用和布局详解
2018/06/30 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
恶意软件的定义
2014/11/12 面试题
中学教师岗位职责
2013/11/26 职场文书
党的群众路线调研报告
2014/11/03 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
python实现自定义日志的具体方法
2021/05/28 Python
python通过opencv调用摄像头操作实例分析
2021/06/07 Python