下边资料是关于python通过Tkinter库实现的一个简单的文本编辑器的内容。
from tkSimpleDialog import askstring
from tkFileDialog import asksaveasfilename

from tkMessageBox import askokcancel

class Quitter(Frame):
def init(self, parent=None):
Frame.init(self, parent)
self.pack()
widget = Button(self, text=‘Quit’, command=self.quit)
widget.pack(expand=YES, fill=BOTH, side=LEFT)
def quit(self):
ans = askokcancel(‘Verify exit’, “Really quit?”)
if ans: Frame.quit(self)

class ScrolledText(Frame):
def init(self, parent=None, text=’’, file=None):
Frame.init(self, parent)
self.pack(expand=YES, fill=BOTH)
self.makewidgets()
self.settext(text, file)
def makewidgets(self):
sbar = Scrollbar(self)
text = Text(self, relief=SUNKEN)
sbar.config(command=text.yview)
text.config(yscrollcommand=sbar.set)
sbar.pack(side=RIGHT, fill=Y)
text.pack(side=LEFT, expand=YES, fill=BOTH)
self.text = text
def settext(self, text=’’, file=None):
if file:
text = open(file, ‘r’).read()
self.text.delete(‘1.0’, END)
self.text.insert(‘1.0’, text)
self.text.mark_set(INSERT, ‘1.0’)
self.text.focus()
def gettext(self):
return self.text.get(‘1.0’, END+’-1c’)

class SimpleEditor(ScrolledText):
def init(self, parent=None, file=None):
frm = Frame(parent)
frm.pack(fill=X)
Button(frm, text=‘Save’, command=self.onSave).pack(side=LEFT)
Button(frm, text=‘Cut’, command=self.onCut).pack(side=LEFT)
Button(frm, text=‘Paste’, command=self.onPaste).pack(side=LEFT)
Button(frm, text=‘Find’, command=self.onFind).pack(side=LEFT)
Quitter(frm).pack(side=LEFT)
ScrolledText.init(self, parent, file=file)
self.text.config(font=(‘courier’, 9, ‘normal’))
def onSave(self):
filename = asksaveasfilename()
if filename:
alltext = self.gettext()
open(filename, ‘w’).write(alltext)
def onCut(self):
text = self.text.get(SEL_FIRST, SEL_LAST)
self.text.delete(SEL_FIRST, SEL_LAST)
self.clipboard_clear()
self.clipboard_append(text)
def onPaste(self):
try:
text = self.selection_get(selection=‘CLIPBOARD’)
self.text.insert(INSERT, text)
except TclError:
pass
def onFind(self):
target = askstring(‘SimpleEditor’, ‘Search String?’)
if target:
where = self.text.search(target, INSERT, END)
if where:
print where
pastit = where + (’+%dc’ % len(target))
#self.text.tag_remove(SEL, ‘1.0’, END)
self.text.tag_add(SEL, where, pastit)
self.text.mark_set(INSERT, pastit)
self.text.see(INSERT)
self.text.focus()

if name == ‘main’:
try:
SimpleEditor(file=sys.argv[1]).mainloop()
except IndexError:
SimpleEditor().mainloop()

python通过Tkinter库实现的一个简单的文本编辑器源码相关推荐

  1. python源码编译 带tkinter_python通过Tkinter库实现的一个简单的文本编辑器源码

    下边资料是关于python通过Tkinter库实现的一个简单的文本编辑器的内容. from tkSimpleDialog import askstring from tkFileDialog impo ...

  2. C++程序设计:原理与实践(进阶篇)15.6 实例:一个简单的文本编辑器

    15.6 实例:一个简单的文本编辑器 列表最重要的性质就是可以在不移动元素的情况下对其进行插入或删除操作.下面我们通过一个例子来说明这一点.考虑应该如何在文本编辑器中表示一个文本文件中的字符.所选用的 ...

  3. java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...

  4. 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  5. 【Qt5开发及实例】16、实现一个简单的文本编辑器(over)

    实现一个简单的文本编辑器 其他具体的代码基础看前面:http://blog.csdn.net/cutter_point/article/details/42839071 1.功能 这个程序又添加了文本 ...

  6. Java实现一个简单的文本编辑器(简易版)

    (用Java做了一个简单的文本编辑器,其中看了很多博主的教学和代码,在这里感谢:@Mark7758.@Kingsly_Liang.@佐敦不下雨.再次感谢!) 1.功能说明: 文件菜单:打开.保存.新建 ...

  7. 一个简单的IPmsg程序源码分析(二)

    离上篇一个简单的IPmsg程序源码分析(一)已经基本半个月(上篇最初发布在点点上面,后边纠结了一下还是选择了博客园),利用空闲的时间终于把源码的构架和一些细节基本都搞清楚了,总的来说是很简单的一个客户 ...

  8. IoC容器Autofac(2) - 一个简单示例(附demo源码)

    上篇文章中(IoC容器Autofac(1) -- 什么是IoC以及理解为什么要使用Ioc),我们用自己的方式实现了一个简陋的工厂类来实现IoC. 这里我们尝试使用Auotfac来替换我们的工厂类Mov ...

  9. C/C++ 实现一个简单的文本编辑器(windows程序设计)

    一.实现目的 为了更好的学习QT中的窗口.句柄等概念,先对Windows编程进行了大体了解,通过一个简单文本编辑器的实现,来加深对这些基本概念的理解. 二. 基本功能 支持拷贝粘贴 支持文件保存(保存 ...

最新文章

  1. C语言的那些秘密之---函数返回局部变量
  2. 继续C#开发or转做产品
  3. C语言各种变量的初始化
  4. 麦克风阵列音频检查方法和标准
  5. C# WebApi POST 提交
  6. Eclipse开发Android程序如何在手机上运行
  7. python数字排序 循环_【python-leetcode448-循环排序】找到所有数组中消失的数字
  8. python 实例化方法_Python中__new__()方法的使用和实例化
  9. IE 中开发,兼容与性能测试工具汇总
  10. JSP ---- 入门
  11. 第七讲:tapestry可预览的模板页
  12. ubuntu如何删除刚添加的源?
  13. Proteus ISIS仿真软件中英文元件名称对照
  14. 微信开发者工具小技巧——快速打开微信程序API文档。
  15. JAVA判断访问设为是否为手机、苹果、微信
  16. excel中两列如何进行交叉排列组合
  17. 如何将视频的每一帧提取成图片
  18. 摄像头、麦克风、耳麦免费在线检测(各种外设的在线检测网站)
  19. Alfira学习篇(Python)
  20. 基于MQ对登录系统核心流程进行异步化改造,提升系统性能-11

热门文章

  1. iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别?(转)
  2. 苹果cmsv10好看的七色中文二开视频免费模板
  3. break和continue用法详解
  4. 平面极坐标系下质点的运动方程
  5. 华盛顿大学西雅图 计算机科学 申请条件,华盛顿大学西雅图分校研究生申请条件有哪些?...
  6. 通过外部Python调用FreeCAD
  7. linux scp 指令使用
  8. Day82_ELK(一)
  9. 流利说AI刘扬:从教授到”AI虚拟老师“
  10. 谈谈科研论文的追踪、管理和阅读