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简单计算文件夹大小的方法
Jul 14 Python
Python进程间通信之共享内存详解
Oct 30 Python
Python标准库inspect的具体使用方法
Dec 06 Python
python画折线图的程序
Jul 26 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python之列表推导式的用法
Nov 29 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
Django实现简单的分页功能
Feb 22 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开发工具
2015/11/09 PHP
eclipse php wamp配置教程
2016/06/30 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
浅析return false的正确使用
2013/11/04 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
Python实现大文件排序的方法
2015/07/10 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
教师自查自纠材料
2014/10/14 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android