已实现基本功能,显示行号功能暂时实现不了(后面学会了再加,右下角可以实现定位光标所在行.列) 可能会有些bug

  1 from tkinter import *
from tkinter.messagebox import *
from tkinter.filedialog import *
from threading import Timer
import string #定义一个添加菜单的类,想加什么菜单直接调用即可,副作用是没法加分隔线
class menuNameAccCom:
def __init__(self,menuname,menucom,menuacc):
self.menuname=menuname
self.menuacc=menuacc
self.menucom=menucom def addmenu(self,wigetName):
for (name,com,acc) in (zip(self.menuname,self.menucom,self.menuacc)):
wigetName.add_command(label=name,accelerator=acc,command=com) filename=''
def openfile():
global filename
filename = askopenfilename(defaultextension='.txt')
if filename == '':
filename = None
else:
root.title('FileName:'+os.path.basename(filename))
textPad.delete(1.0,END)#delete all
f = open(filename,'r')
textPad.insert(1.0,f.read())
f.close() def newfile():
global FileName
root.title('new file')
filename = None
textPad.delete(1.0,END) def savefile():
global filename
try:
f = open(filename,'w')
msg = textPad.get(1.0,END)
f.write(msg)
f.close()
except:
saveas() def saveas():
global filename
f = asksaveasfilename(initialfile = 'newfile',defaultextension ='.txt')
filename = f
fh = open(f,'w')
msg = textPad.get(1.0,END)
fh.write(msg)
fh.close()
root.title('FileName:'+os.path.basename(f)) def cut():
textPad.event_generate('<<Cut>>') def copy():
textPad.event_generate('<<Copy>>') def paste():
textPad.event_generate('<<Paste>>') def redo():
textPad.event_generate('<<Redo>>') def undo():
textPad.event_generate('<<Undo>>') def selectall():
textPad.tag_add('sel',1.0,END) def search():
topsearch=Toplevel(root)
topsearch.geometry('300x30+200+250')
labell=Label(topsearch,text='find')
labell.grid(row=0,column=0,padx=5)
entry1=Entry(topsearch,width=28)
entry1.grid(row=0,column=1,padx=5)
button1=Button(topsearch,text='find')
button1.grid(row=0,column=2) def addButton(name,command):
for (toolname ,toolcom) in zip(name,command):
shortButton = Button(toolbar,text=toolname,relief='groove',command=toolcom)
shortButton.pack(side=LEFT,padx=2,pady=5) root = Tk()
root.title('Andy Note')
root.geometry('800x500+100+100') menubar = Menu(root)
root.config(menu= menubar) #文件菜单
filemenu = Menu(menubar,tearoff=False)
filemenuName = ('New','Open','Save','Save as')
filemenuAcc = ('Ctrl+N','Ctrl+O','Ctrl+S','Ctrl+Shift+S')
filemenuCom = (newfile,openfile,savefile,saveas) filem = menuNameAccCom(filemenuName,filemenuCom,filemenuAcc)#调用添加菜单的类
filem.addmenu(filemenu)
menubar.add_cascade(label='File',menu=filemenu) #编辑菜单
editmenu = Menu(menubar,tearoff=False)
editmenuName = ('Undo','Redo','Cut','Copy','Paste','Select All')
editmenuAcc = ('Ctrl+Z','Ctrl+Y','Ctrl+X','Ctrl+C','Ctrl+V','Ctrl+A')
editmenuCom = (undo,redo,cut,copy,paste,selectall) editm = menuNameAccCom(editmenuName,editmenuCom,editmenuAcc)#调用添加菜单的类
editm.addmenu(editmenu)
menubar.add_cascade(label='Edit',menu=editmenu) findmenu = Menu(menubar,tearoff=False)
findmenu.add_command(label='Find',accelerator='Ctrl+F',command=search)
menubar.add_cascade(label='Find',menu=findmenu) #按钮
toolbar = Frame(root,height=20)
toolbarName = ('New','Open','Save','SaveAs','Undo','Redo','Cut','Copy','Paste','SelectAll')
toolbarCommand = (newfile,openfile,savefile,saveas,undo,redo,cut,copy,paste,selectall) addButton(toolbarName,toolbarCommand) #调用添加按钮的函数
toolbar.pack(fill=X) text = Text(root,width=4,wrap=CHAR,height=1)
text.pack(side=LEFT,fill=Y) textPad = Text(root,undo=True)
textPad.pack(expand=YES,fill=BOTH)
textPad.focus_set() scroll = Scrollbar(textPad)
textPad.config(yscrollcommand=scroll.set)
scroll.config(command=textPad.yview)
scroll.pack(side=RIGHT,fill=Y) timer_interval = 1
def getline():
global t,row
row,col = textPad.index(INSERT).split('.')
lineNum = 'Ln: ' +row+' '+'Co: '+col
var.set(lineNum) t = Timer(timer_interval,getline)
t.start()
t = Timer(timer_interval,getline)
t.start() var = StringVar()
status = Label(root,anchor=E,height=1,text='Ln',relief=FLAT,takefocus=False,textvariable=var,padx=2)
status.pack(fill=X) mainloop()

记事本源代码 python3的更多相关文章

  1. Qt: 记事本源代码

    界面编程之实例学习,系统记事本是个极好的参考,初学Delphi及后之c#,皆以记事本为参考,今以Qt学习,亦是如此. 期间搭建开发环境,复习c++知识,寻找模块对应功能,不一而足:现刻录其模块代码,以 ...

  2. Java Swing 记事本代码

    记事本代码分为4个部分: 1.顶部点击可展开的菜单如何生成?2.当点击了顶部菜单的某一个子菜单,在程序中如何判断点击了哪个子菜单?[正在写]3.那个供你输入文字并且可以滚动的文本框如何生成?4.点击了 ...

  3. 【资料目录收藏】.NET开发必看资料53个 经典源码77个

    简单描述:为大家整理了下载中心.net资料,都是比较热的,好评率比较高的,做了一个可收藏的下载目录,希望大家喜欢~ 基于.net构架的留言板项目大全源码 http://down.51cto.com/z ...

  4. .net 资源

    基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.net和C#.net通用权限系统组件功能教程 http://down.51cto.com/zt/1 ...

  5. .NET开发必看资料53个+经典源码77个

    目录0豆下载:http://down.51cto.com/data/426019 附件预览: 基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.ne ...

  6. python运行出现TypeError: super() takes at least 1 argument (0 given)错误

    在写继承子类的时候出现了TypeError: super() takes at least 1 argument (0 given)的error: 源代码(python3中完美可运行): class ...

  7. 源代码编译安装Python3.5.2

    由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...

  8. 从零开始学习PYTHON3讲义(十三)记事本的升级版:网络记事本

    <从零开始PYTHON3>第十三讲 网络编程的火热和重要性这里就不多说了,我们直接来看看Python在互联网编程方面的表现. Python有很多网络编程的第三方扩展包,这里推荐一个我认为最 ...

  9. python3+openCV实现图片的人脸人眼检测,原理+参数+源代码

    上学时候用matlab学过一些图像处理的基础知识,当时课程作业是用haar实现人脸检测 but当时是心思根本不在图像处理上,so找了个同学帮忙做的,自己没上心 然鹅天道好轮回,现在捡起来了原来的算法一 ...

随机推荐

  1. 屏幕取色工具推荐 ColorPix

    很好用的一个屏幕取色工具,方便套页面时,在图片上取色. 用鼠标指到取色未知,按CTRL+C,就可复制16进制的颜色值. 下载地址:http://files.cnblogs.com/zjfree/Col ...

  2. Neutron GRE模式要注意的问题

    GRE模式下,如果MTU和Offloading配置不当,会严重降低网络性能(https://ask.openstack.org/en/question/6140/quantum-neutron-gre ...

  3. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  4. MySQL运行出错:无法连接驱动、无root访问权限解决办法

    按照疯狂java讲义的13.3的程序,发现程序运行出错. 1.点开runConnMySql.cmd运行文件,出现如下结果: 2.用Editplus进行编译运行,如下结果: 报错定位到程序第18行,而第 ...

  5. jQuery-webcam(.NET)实现WEB摄像头监控

    jQuery-webcam是一个非常好用的摄像头监控工具,DEMO可官方下载地址http://www.xarg.org/project/jquery-webcam-plugin/ 1.下载解压后,jq ...

  6. ScalaTour-1.基础

    import java.io.{BufferedReader, File, FileInputStream, InputStreamReader} import java.util import ja ...

  7. MVC 安装

    mvc 4 支持window xp,window 7,window 8, mvc 4 支持vs2010,vs2012 vs2012中包含mvc4; vs2010中需要安装mvc4 安装包:

  8. (C# Debug)A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll

    Debug 模式下运行程序的时候,Output 窗口出来个错误“A first chance exception of type 'System.ArgumentException' occurred ...

  9. MHI ,运动历史图像的的获取[下载自CSDN]

    #include "cv.h" #include "highgui.h" #include "stdlib.h" #include &quo ...

  10. URI

    1, URI (标识.定位任何资源的字符串) 在电脑术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串. 该种标识允许用 ...