#coding=utf-8
import sys,os
import tkFileDialog
from Tkinter import *
from tkFont import Font print "欢迎使用编辑器: ", str(sys.argv[0])[:-3] class Write(): def __init__(self):
self.tk=Tk()
if len(sys.argv[0])>=2:
fname=self.fname=sys.argv[1]
else:
fname=self.fname='new.txt'
self.createUI(fname)
self.tk.mainloop() def createUI(self,fname):
#create menu
menubar=Menu(self.tk,bg='purple')
fmenu=Menu(menubar,tearoff=0)
fmenu.add_command(label='Open',command=self.open)
fmenu.add_command(label='Save',command=self.save)
fmenu.add_command(label='Exit',command=exit)
menubar.add_cascade(label="File", menu=fmenu)
self.tk.title("Welcome to writer!")
self.tk.geometry("800x600")
self.tk.config(menu=menubar,background="gray",borderwidth = 8)
#l =
self.txt=Text(width=6000,height=6000,font=Font(self.tk,size=14))
with open(fname) as f:
content = f.read()
f.close()
print content
filecontent=content
#self.txt.delete(1.0,END)
self.txt.insert(INSERT,filecontent)
self.txt.pack() def save(self):
txtContent = self.txt.get(1.0,END)
self.saveFile(content=txtContent) def open(self):
self.filename = tkFileDialog.askopenfilename(initialdir = os.getcwd())
filecontent=self.openFile(fname=self.filename)
if filecontent is not -1:
self.text.delete(1.0,END)
self.text.insert(1.0,filecontent) def openFile(self,fname=None):
if fname is None:
return -1
self.fname = fname
file = open(fname,'r+')
content = file.read()
file.close()
return content def saveFile(self,content=None):
if content is None:
return -1
file=open(self.fname,'w')
file.write(content)
file.flush()
file.close()
return 0 def exit(self):
sys.exit(0) if __name__ == '__main__':
if len(sys.argv)>=2:
Write()
else:
print "请加上需要编辑的文件名,例:python %s new.txt"%sys.argv[0]

writer.py

Python 基于TK 文本编辑器的更多相关文章

  1. python实现的文本编辑器 - Skycrab - 博客频道 - CSDN.NET

    Download Qt, the cross-platform application framework | Qt Project Qt 5.2.1 for Windows 64-bit (VS 2 ...

  2. 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录

    起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...

  3. python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)

    一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...

  4. python小项目之文本编辑器

    高考完后这么久才想起这系列教程,实在抱歉,现在该来继续教程了. 本节利用前面所学知识,来完成一个小工具--文本编辑器! tkinter 在实现文本编辑器之前,先来了解下tkinter这个python库 ...

  5. Python GUI文本编辑器

    使用Python编写一个简单的文本编辑器,需要展示一个用户界面,功能包括打开.保存文本文件. 使用tkinter库来编写GUI. #简单GUI文本编辑器 from tkinter import * f ...

  6. 基于trie树的具有联想功能的文本编辑器

    之前的软件设计与开发实践课程中,自己构思的大作业题目.做的具有核心功能,但是还欠缺边边角角的小功能和持久化数据结构,先放出来,有机会一点点改.github:https://github.com/chu ...

  7. 基于jquery的bootstrap在线文本编辑器插件Summernote

    Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Op ...

  8. Summernote – 基于 Bootstrap 的文本编辑器

    Summernote 是一个简单,灵活,所见即所得(WYSIWYG)的编辑器,基于 jQuery 和 Bootstrap 构建.Summernote 所有主要的操作都支持快捷键,有一个功能强大的 AP ...

  9. python语言学习4——使用文本编辑器

    在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍. 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样, ...

随机推荐

  1. bootstrap快速入门笔记(八)-按钮,响应式图片

    一,默认样式:.btn-default , .btn-primary , .btn-success  ,.btn-info, btn-warning ,btn-link 二,尺寸:.btn-lg, . ...

  2. 视差滚动特效图片滑块-Sequence.js

    效果演示     插件下载

  3. JS组件系列——自己动手封装bootstrap-treegrid组件

    前言:最近产品需要设计一套相对完整的组织架构的解决方案,由于组织架构涉及到层级关系,在表格里面展示层级关系,自然就要用到所谓的treegrid.可惜的是,一些轻量级的表格组件本身并没有自带树形表格的功 ...

  4. Linux添加硬盘和挂载

    1.使用fdisk -l 查看硬盘的详细信息 分析: 2.分区初始化 fdisk /dev/sdb 分析:各个参数的解析                   1. 输入 m 显示所有命令列示. 2. ...

  5. 对象克隆(clone)实例详解

    <?php class Staff { public $name; public $age; public $salary; public function __construct($name, ...

  6. Excel 数据导入(OleDb)

    @using (Html.BeginForm("Student", "Excel", FormMethod.Post, new { enctype = &quo ...

  7. 转载+++++iptables详解+++++转载

    转载:http://blog.chinaunix.net/uid-26495963-id-3279216.html 一.前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件 ...

  8. poj1797 Heavy Transportation Dijkstra算法的简单应用

    题目链接:http://poj.org/problem?id=1797 题目就是求所有可达路径的其中的最小值边权的最大值 即对于每一条能够到达的路径,其必然有其最小的承载(其实也就是他们自身的最大的承 ...

  9. C++ 常见的 Undefined symbols for architecture *

    出现 Undefined symbols for architecture x86_64: 的原因 1.函数申明了,却未被定义. 2.申明的虚函数未被实现. NOTE: a missing vtabl ...

  10. Gulp文档入门的文档

    Gulp自动化执行文件的操作 首先gulp基于node开发的,先按照node.js,使用npm sudo npm install -g gulp (在全局的范围安装 gulp) gulp --help ...