tkinter示例: 编辑保存
来源:互联网 发布:淘宝宝贝拍照和制作 编辑:程序博客网 时间:2024/05/16 09:20
1.打开该软件后界面如下:
2.点击“File”查看下面的菜单
3.依次点击“Help”--->"About" 可以查看关于该软件的说明
4.点击“Open”按钮或依次点击菜单"File"---->"Open"或者是Ctrl+o都可以打开“打开”对话框以选择要编辑的文件
5.选择好文件并点击“Open”后,文件内容就会被放入下面的文本框中
6.编辑完后可以按Ctrl+s原地保存,或者是Ctrl+Shfit+s另存为,下图为另存为
以下为代码:
#!/usr/bin/env pythonimport os.pathfrom Tkinter import *from tkFileDialog import *from tkFont import Fonttry: from ttk import Button, Scrollbarexcept ImportError: passclass Edit_save(object): def __init__(self): self.root = Tk() self.root.title('EditSave') self.root.geometry('+120+50') self.font_en = Font(self.root, size=12) self.font_text = Font(self.root,family="Helvetica", size=12, weight='normal') self.menubar = Menu(self.root, bg='purple') self.filemenu = Menu(self.menubar) self.filemenu.add_command(label='Open', accelerator='Ctrl+o', command=self.__open, underline=0) self.filemenu.add_command(label='Save', accelerator='Ctrl+s', command=self.__save, underline=0) self.filemenu.add_command(label='Save As', accelerator='Ctrl+Shift+s', command=self.__save_as, underline=5) self.filemenu.add_separator() self.filemenu.add_command(label='Quit', accelerator='Alt+F4', command=self.root.destroy, underline=0) self.menubar.add_cascade(label='File', underline=0, menu=self.filemenu) self.helpmenu = Menu(self.menubar) self.helpmenu.add_command(label='About', underline=0, command=About_editsave) self.menubar.add_cascade(label='Help', underline=0, menu=self.helpmenu) self.editmenu = Menu(self.menubar, tearoff=False) self.editmenu.add_command(label='Refresh', accelerator='F5', command=self.root.update) self.editmenu.add_command(label='Copy', accelerator='Ctrl+C', command=lambda : self.text.event_generate('<<Copy>>')) self.editmenu.add_command(label='Paste', accelerator='Ctrl+V', command=lambda : self.text.event_generate('<<Paste>>')) self.editmenu.add_command(label='Cut', accelerator='Ctrl+X', command=lambda : self.text.event_generate('<<Cut>>'))# self.editmenu.add_command(label='Undo', accelerator='Ctrl+Z',# command=lambda : self.text.event_generate('<<Undo>>'))# self.editmenu.add_command(label='Redo', accelerator='Ctrl+Y',# command=lambda : self.text.event_generate('<<Redo>>')) self.editmenu.add_command(label='select_all', accelerator='Ctrl+A', command=lambda : self.text.tag_add('sel', '1.0', 'end')) self.fm_base = Frame(self.root) self.fm_up = Frame(self.fm_base) self.var = StringVar() self.en = Entry(self.fm_up, font=self.font_en, textvariable=self.var, width=20) self.bt_open = Button(self.fm_up, text='Open',) self.bt_quit = Button(self.fm_up, text='Quit', underline=0) self.bt_quit.pack(side=RIGHT, padx=10) self.bt_open.pack(side=RIGHT, padx=5) self.en.pack(side=RIGHT, pady=5) self.bt_open.config(command=self.__open) self.bt_quit.config(command=self.root.destroy) self.fm_up.pack(fill=X) self.fm_base.pack(fill=X) self.fm_down = Frame(self.root) self.text = Text(self.fm_down, font=self.font_text, width=50, height=20) self.text.pack(side=LEFT, fill=BOTH, expand=True) self.scb = Scrollbar(self.fm_down) self.scb.pack(side=LEFT, fill=Y) self.text.config(yscrollcommand=self.scb.set) self.scb.config(command=self.text.yview) self.fm_down.pack(fill=BOTH, expand=True) self.root.bind('<Control-o>', self.__invoke_open) self.root.bind('<Control-O>', self.__invoke_open) self.root.bind('<Control-s>', self.__invoke_save) self.root.bind('<Control-S>', self.__invoke_save_as) self.root.bind('<Button-3>', self.__popupmenu) self.root.bind('Alt-F4', lambda event: self.root.destroy) self.root.bind('<F5>', lambda event: self.root.update) self.root.bind('<Control-C>', lambda event: self.text.event_generate('<<Copy>>')) self.root.bind('<Control-V>', lambda event: self.text.event_generate('<<Paste>>')) self.root.bind('<Control-X>', lambda event: self.text.event_generate('<<Cut>>')) for i in 'a', 'A': self.root.bind('<Control-%s>' % i, lambda event: self.text.tag_add('sel', '1.0', 'end'))# for i in 'z', 'Z':# self.root.bind('<Control-%s>' % i,# lambda event: self.text.event_generate('<<Undo>>'))# for i in 'y', 'Y':# self.root.bind('<Control-%s>' % i,# lambda event: self.text.event_generate('<<Redo>>')) self.root.config(menu=self.menubar) self.root.mainloop() def __open(self): filetypes = [ ("All Files", '*'), ("Python Files", '*.py', 'TEXT'), ("Text Files", '*.txt', 'TEXT'), ("Config Files", '*.conf', 'TEXT')] fobj = askopenfile(filetypes=filetypes) if fobj: self.text.delete('1.0', END) self.text.insert('1.0', fobj.read()) self.en.delete(0, END) self.en.insert(0, fobj.name) def __save(self): value = self.var.get().strip() if value: f = open(value, 'w') f.write(self.text.get('1.0', END).strip() + '\n') f.close() else: self.__save_as() def __save_as(self): text_value = self.text.get('1.0', END).strip() if text_value: fobj = asksaveasfile() if fobj: fobj.write(text_value + '\n') def __invoke_open(self, event): self.__open() def __invoke_save(self, event): self.__save() def __invoke_save_as(self, event): self.__save_as() def __popupmenu(self, event): self.editmenu.post(event.x_root, event.y_root)class About_editsave(object): def __init__(self): self.root = Tk() self.root.title('EditSave') self.root.geometry('380x450+200+80') self.root.resizable(False, False) self.text='''Author : WANG JichengDate : Mon Feb 15 14:35:44 CST 2016Summary:This is a test guiwhich is about a document edit and save''' self.fm_full = Frame(self.root, bg='gray') self.fm_up = Frame(self.fm_full) self.lb1 = Label(self.fm_up, text='EditSave 1.0', font='Helvetica -20 bold') self.lb1.pack(expand=True) self.fm_up.pack(fill=BOTH, expand=True) self.fm_middle = Frame(self.fm_full) self.fm_separator = Frame(self.fm_middle, height=2, bd=1, relief=SUNKEN) self.fm_separator.pack(fill=X, padx=5, pady=5) self.lb2 = Label(self.fm_middle, text=self.text, justify=LEFT) self.lb2.pack() self.lb2.config(font='Helvetica -16 bold') self.fm_middle.pack(fill=BOTH, expand=True) self.fm_down = Frame(self.fm_full) self.fm_separator = Frame(self.fm_down, height=2, bd=1, relief=SUNKEN) self.fm_separator.pack(fill=X, padx=5, pady=5) self.bt = Button(self.fm_down, text='Quit', command=self.root.destroy) self.bt.pack(side=BOTTOM, anchor=E, padx=5, pady=5) self.fm_down.pack(fill=BOTH, expand=True) self.fm_full.pack(fill=BOTH, expand=True) self.root.mainloop()if __name__ == "__main__": Edit_save()
0 0
- tkinter示例: 编辑保存
- tkinter示例:屏保程序
- tkinter示例:随意测试
- tkinter示例:登录
- Tkinter -- 入门示例
- Tkinter控件示例
- Python3 Tkinter 示例
- Tkinter中的checkbutton使用示例
- Python 图形编辑 Tkinter Button (二)
- Ext Js Grid 编辑 新增 删除 保存的一个小示例
- Tkinter中entry的使用示例
- Python3.4 tkinter GUI编程示例
- Tkinter菜单Menu的使用示例
- extgridpanel编辑保存数据
- 可编辑保存ALV
- java+ztree编辑保存
- linux编辑保存文件
- 编辑-保存-取消
- 国内手机号码归属地查询WEB服务
- HTML5表单
- 【Android】安卓学习笔记之隐藏标题栏
- swust oj one+two=3(0287)——单词和数字的转化
- 事件冒泡有关
- tkinter示例: 编辑保存
- bootstrap日历控件
- ACM解题总结——HihoCoder1033
- 放肆地使用UIBezierPath和CAShapeLayer画各种图形
- c语言入门之项目1.0——正差值
- java 多线程操作
- android学习攻略
- POJ 1064 (二分)
- uva1645