python写的一个文本编辑器_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()

时间: 2024-08-02 15:29:11

python写的一个文本编辑器_python的相关文章

open-写一个文本编辑器的问题

问题描述 写一个文本编辑器的问题 自己在写一个文本编辑器,读取文件的函数open()和打印view()存在问题,但是找不到错误啊/*文本编辑器editor源代码*///预处理开始#include#include#include#includetypedef struct node{ char ch; struct node *next;} node; typedef struct Hnode{ node next; struct Hnode * next1;} Hnode;void open(H

Python写的一个简单监控系统

  这篇文章主要介绍了Python写的一个简单监控系统,本文讲解了详细的编码步骤,并给给出相应的实现代码,需要的朋友可以参考下 市面上有很多开源的监控系统:Cacti.nagios.zabbix.感觉都不符合我的需求,为什么不自己做一个呢 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 首先数据库建表 建立一个数据库"falcon",建表语句如下: ? 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `stat` ( `

用java做一个文本编辑器并提供eclipse的编译和运行功能

问题描述 用java做一个文本编辑器并提供eclipse的编译和运行功能 实现如下主要菜单:文件(新建,打开文件,保存,另存为,退出)工具(编译,运行)帮助(关于javaedit)功能要求:1编译和运行结果要能显示在图形界面的组件中:2如果文件没有保存,关闭窗口需要提示保存:3如果文件没有命名,保存需要提示保存:4编译没有保存的java文件,需要先保存再编译:5编写代码获得编译和运行结果,不能直接用console窗口显示.(代码后给下注释) 解决方案 如果你需要简单的,自己可以动手做一下,界面使

【求助】用Python写出一个遍历网站所有url的小工具

问题描述 [求助]用Python写出一个遍历网站所有url的小工具 用Python 怎么写出一个 遍历网站所有url的小工具, 包括首页的url和所有子网页url 不能有重复的url,我自己写的只能遍历一个网页的 首页,子网页的遍历不出来,新人 没币 ,求好心人帮助!!! 解决方案 http://www.cnblogs.com/fnng/p/3576154.htmlhttp://www.oschina.net/code/list_releted_codes?id=25402 解决方案二: htt

求做一个文本编辑器类似于文本文档(比它要简单)

问题描述 求大神给做一个文本编辑器,功能:保存功能,编辑功能(复制,剪切,粘贴),字体,字号,颜色设置.就这些功能.求大神给做一个,救命啊,给高分... 解决方案 解决方案二:用windows里面的文本编辑器就行了.解决方案三:引用1楼jdgdf566的回复: 用windows里面的文本编辑器就行了. 这是我们的课程设计,要做一个文本编辑器,帮忙啊解决方案四:弄个jtextarea,弄个菜单,就行了.

《易学Python》——1.7 文本编辑器和IDE

1.7 文本编辑器和IDE 要创建程序,您需要使用文本编辑器来编辑供Python读取的文件,但Microsoft Word和"写字板"等编辑器都是糟糕的选择,因为它们使用的复杂格式与Python(以及其他编程语言)不兼容.相反,您应使用直接编辑文本,且不支持粗体和分页等格式的程序. 如果您使用的是Windows PC,总是可以使用"记事本",而Linux和Mac OS X也提供了类似的应用程序.然而,这种编辑器的功能很少,无助于您发现众多常见的编程错误,如未正确缩进

跟老齐学Python之做一个小游戏_python

在讲述有关list的时候,提到做游戏的事情,后来这个事情一直没有接续.不是忘记了,是在想在哪个阶段做最合适.经过一段时间学习,看官已经不是纯粹小白了,已经属于python初级者了.现在就是开始做那个游戏的时候了. 游戏内容:猜数字游戏 太简单了吧.是的,游戏难度不大,不过这个游戏中蕴含的东西可是值得玩味的. 游戏过程描述 程序运行起来,随机在某个范围内选择一个整数. 提示用户输入数字,也就是猜程序随即选的那个数字. 程序将用户输入的数字与自己选定的对比,一样则用户完成游戏,否则继续猜. 使用次数

使用nodejs、Python写的一个简易HTTP静态文件服务器_node.js

日常开发过程中,我们经常需要修改一些放在 CDN 上的静态文件(如 JavaScript.CSS.HTML 文件等),这个过程中,我们希望能有一种方式将线上 CDN 的目录映射为本地硬盘上的某个目录,这样,当我们在本地修改了某个文件时,不需要发布,刷新后马上能看到效果. 比如,我们的 CDN 域名是:http://a.mycdn.com,本地对应的目录是:D:\workassets,我们希望所有对 http://a.mycdn.com/* 的访问被映射到本地的 D:\workassets\* 下

Python写的服务监控程序实例_python

前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python网站下载源代码,解压到Redhat上,然后运行下面的命令: 复制代码 代码如下: # ./configure --prefix=/usr/local/python27 # make # make install 这样安装之后默认不会启用Python2.7,需要使用/usr/local/python27/bin/python2.7调用新版本的python. 而下面的安装方