自己写了一个简单的文本编辑器(还有很多功能未完成,以后可能会填坑):
#--------------------------------------------------#
# coding:utf-8 #
# 功能:简单文本编辑器 #
# 版本:1.0 #
# 时间:2016-6-18 #
# 作者:xingyys #
#--------------------------------------------------#
from Tkinter import *
from tkFileDialog import *
from tkMessageBox import *
import platform
import os
# 新建功能
def newfile():
global filename
filename = 'Newfile.txt'
file = open('Newfile.txt','w')
file.close()
# 打开文件
def openfile():
systype = platform.system()
if systype == 'Windows':
basedir = 'C:\\'
else:
basedir = '/'
filename = askopenfilename(initialdir = basedir)
try:
Readfile = open(filename,'r')
except IOError, errmsg:
print '%s 打开失败' % errmsg
else:
editbox.delete(1.0,END)
for eachline in Readfile:
editbox.insert(INSERT,eachline)
Readfile.close()
# 保存文件
def savefile():
save_data = editbox.get(1.0, END)
try:
Changefile = open(filename,'w')
Changefile.writelines(save_data.encode('utf-8'))
Changefile.close()
showinfo(title = '提示',message = '保存成功')
except:
showinfo(title = '错误',message = '未知错误,保存失败')
# 另存为功能
def saveasfile():
systype = platform.system()
if systype == 'Windows':
basedir = 'C:\\'
else:
basedir = '/'
filename = asksaveasfile(initialdir = basedir) # 这里出来的filename为实例,不是文件路径
save_data = editbox.get(1.0, END)
try:
filename.writelines(save_data.encode('utf-8'))
filename.close()
showinfo(title = '提示',message = '保存成功')
except:
pass
# 退出功能
def Textquit():
top.destroy()
# 帮助信息
def printhelp():
helpcon = Toplevel()
helpcon.resizable(False, False) # 控制窗口大小
helpcon.geometry('200x80')
Label(helpcon,text = '功能:简单文本编辑器\n'
'版本:1.0\n'
'时间:2016-6-18\n'
'作者:xingyys').pack(fill = BOTH)
# 撤销操作
def EditUndo():
editbox.edit_undo()
def InitMenu():
# 初始化菜单
menubar = Menu(top)
# 创建文件菜单
filemenu = Menu(menubar,tearoff = 0)
filemenu.add_command(label = '新建',command = newfile)
filemenu.add_command(label = '打开',command = openfile)
filemenu.add_command(label = '保存',command = savefile)
filemenu.add_command(label = '另存为',command = saveasfile)
filemenu.add_command(label = '退出',command = Textquit)
menubar.add_cascade(label = '文件',menu = filemenu)
# 创建编辑菜单
editmenu = Menu(menubar,tearoff = 0)
editmenu.add_command(label = '撤销 Ctrl+z',command = EditUndo)
# editmenu.add_separator() # 分隔线
editmenu.add_command(label = '剪切 Ctrl+x')
editmenu.add_command(label = '复制 Ctrl+c')
editmenu.add_command(label = '粘贴 Ctrl+v')
#editmenu.add_command(label = '删除')
editmenu.add_command(label = '全选 Ctrl+/')
menubar.add_cascade(label = '编辑',menu = editmenu)
# 创建格式菜单
formatmenu = Menu(menubar,tearoff = 0)
formatmenu.add_command(label = '自动换行')
formatmenu.add_command(label = '字体')
menubar.add_cascade(label = '格式',menu = formatmenu)
# 创建查看菜单
checkmenu = Menu(menubar,tearoff = 0)
checkmenu.add_checkbutton(label = '状态栏')
menubar.add_cascade(label = '查看',menu = checkmenu)
# 创建帮助菜单
helpmenu = Menu(menubar,tearoff = 0)
helpmenu.add_command(label = '关于',command = printhelp)
menubar.add_cascade(label = '帮助',menu = helpmenu)
top['menu'] = menubar
top = Tk()
top.geometry('500x400')
top.title('xyys_Editor')
InitMenu()
editbox = Text(top,undo = YES)
#Label(top,text = '001\n002\n003\n',anchor = N,width = 3,bg = 'white').pack(side = LEFT,expand = 1,fill = Y)
editbox.pack(side = TOP,expand = 1,fill = BOTH)
top.protocol('WM_DELETE_WINDOW',Textquit)
top.mainloop()
#--------------------------------------------------#
# coding:utf-8 #
# 功能:简单文本编辑器 #
# 版本:1.0 #
# 时间:2016-6-18 #
# 作者:xingyys #
#--------------------------------------------------#
from Tkinter import *
from tkFileDialog import *
from tkMessageBox import *
import platform
import os
# 新建功能
def newfile():
global filename
filename = 'Newfile.txt'
file = open('Newfile.txt','w')
file.close()
# 打开文件
def openfile():
systype = platform.system()
if systype == 'Windows':
basedir = 'C:\\'
else:
basedir = '/'
filename = askopenfilename(initialdir = basedir)
try:
Readfile = open(filename,'r')
except IOError, errmsg:
print '%s 打开失败' % errmsg
else:
editbox.delete(1.0,END)
for eachline in Readfile:
editbox.insert(INSERT,eachline)
Readfile.close()
# 保存文件
def savefile():
save_data = editbox.get(1.0, END)
try:
Changefile = open(filename,'w')
Changefile.writelines(save_data.encode('utf-8'))
Changefile.close()
showinfo(title = '提示',message = '保存成功')
except:
showinfo(title = '错误',message = '未知错误,保存失败')
# 另存为功能
def saveasfile():
systype = platform.system()
if systype == 'Windows':
basedir = 'C:\\'
else:
basedir = '/'
filename = asksaveasfile(initialdir = basedir) # 这里出来的filename为实例,不是文件路径
save_data = editbox.get(1.0, END)
try:
filename.writelines(save_data.encode('utf-8'))
filename.close()
showinfo(title = '提示',message = '保存成功')
except:
pass
# 退出功能
def Textquit():
top.destroy()
# 帮助信息
def printhelp():
helpcon = Toplevel()
helpcon.resizable(False, False) # 控制窗口大小
helpcon.geometry('200x80')
Label(helpcon,text = '功能:简单文本编辑器\n'
'版本:1.0\n'
'时间:2016-6-18\n'
'作者:xingyys').pack(fill = BOTH)
# 撤销操作
def EditUndo():
editbox.edit_undo()
def InitMenu():
# 初始化菜单
menubar = Menu(top)
# 创建文件菜单
filemenu = Menu(menubar,tearoff = 0)
filemenu.add_command(label = '新建',command = newfile)
filemenu.add_command(label = '打开',command = openfile)
filemenu.add_command(label = '保存',command = savefile)
filemenu.add_command(label = '另存为',command = saveasfile)
filemenu.add_command(label = '退出',command = Textquit)
menubar.add_cascade(label = '文件',menu = filemenu)
# 创建编辑菜单
editmenu = Menu(menubar,tearoff = 0)
editmenu.add_command(label = '撤销 Ctrl+z',command = EditUndo)
# editmenu.add_separator() # 分隔线
editmenu.add_command(label = '剪切 Ctrl+x')
editmenu.add_command(label = '复制 Ctrl+c')
editmenu.add_command(label = '粘贴 Ctrl+v')
#editmenu.add_command(label = '删除')
editmenu.add_command(label = '全选 Ctrl+/')
menubar.add_cascade(label = '编辑',menu = editmenu)
# 创建格式菜单
formatmenu = Menu(menubar,tearoff = 0)
formatmenu.add_command(label = '自动换行')
formatmenu.add_command(label = '字体')
menubar.add_cascade(label = '格式',menu = formatmenu)
# 创建查看菜单
checkmenu = Menu(menubar,tearoff = 0)
checkmenu.add_checkbutton(label = '状态栏')
menubar.add_cascade(label = '查看',menu = checkmenu)
# 创建帮助菜单
helpmenu = Menu(menubar,tearoff = 0)
helpmenu.add_command(label = '关于',command = printhelp)
menubar.add_cascade(label = '帮助',menu = helpmenu)
top['menu'] = menubar
top = Tk()
top.geometry('500x400')
top.title('xyys_Editor')
InitMenu()
editbox = Text(top,undo = YES)
#Label(top,text = '001\n002\n003\n',anchor = N,width = 3,bg = 'white').pack(side = LEFT,expand = 1,fill = Y)
editbox.pack(side = TOP,expand = 1,fill = BOTH)
top.protocol('WM_DELETE_WINDOW',Textquit)
top.mainloop()
编辑回复