摘要:最近在练习一个关于项目的列表,拿到列表看到这是要实现一个记事本功能,刚开始拿到题目真有点懵。尤其是试验之后发现一定要用类实现起来才简单一些,对于这点类,,要知道本人已经接触语言多年,但对于面向对象还是一窍不通。
最近在练习一个关于python项目的列表,拿到列表看到这是要实现一个记事本功能,刚开始拿到题目真有点懵。虽然用python实现excel的处理已经很熟悉了,且已经把python的知识点都学了一遍,但是用起来还是不顺手呐。尤其是试验之后发现一定要用类实现起来才简单一些,对于这1点 ---类,,要知道本人已经接触c语言多年,但对于面向对象还是一窍不通。好吧,再去翻python关于类的知识,终于给整出来一点门道了。还是代码中解释吧。
注意:这是基于Python3。
#Python支持多种图形界面的库,为了不再麻烦去下载新的库,这里直接使用了python自带的tkinter库,记住本代码主要为了练习实现一个简单的GUI界面,顺便熟悉一下tkinter的使用 from tkinter import * import os from tkinter import filedialog def die(): root.destroy() class Create: # init函数定义类的一些属性 def __init__(self,root): self.root=(root) #菜单控件;显示菜单栏,下拉菜单和弹出菜单,明显这里是要创建基于root的顶层菜单,记住名字self.menubar self.menubar=Menu(root) #Text是tkinter中的文本控件,用于显示多行文本 self.textpad = Text(root) self.textpad.pack(expand=YES,fill=BOTH)#expand 允许拉伸,fill允许(xy两个方向)填充 #这里,是要创建基于顶层菜单的下拉菜单,记住它的名字self.filemenu self.filemenu=Menu(self.menubar,tearoff=0) #好吧,开始添加命令吧,记得要把实现方法添加到command属性中,顺便提一下menu的属性:label,command,accelerator,underline self.filemenu.add_command(label="新建",accelerator="Ctrl+N") self.filemenu.add_command(label="打开",command=self.openfile) self.filemenu.add_separator() self.filemenu.add_command(label="保存",command=self.save) self.filemenu.add_command(label="另存为",command=self.donothing) self.filemenu.add_separator() self.filemenu.add_command(label="页面设置",accelerator="U",command=self.donothing) self.filemenu.add_command(label="打印",accelerator="Ctrl+P",command=self.donothing) self.filemenu.add_separator() self.filemenu.add_command(label="退出",accelerator="X",command=die) #好了,创建完毕就级联到顶层菜单上吧,顺便给它们起一个名字“文件” self.menubar.add_cascade(label="文件",menu=self.filemenu) self.editmenu = Menu(self.menubar, tearoff=0) self.editmenu.add_command(label="Undo", command=self.donothing) self.editmenu.add_command(label="Cut", command=self.donothing) self.editmenu.add_command(label="Copy", command=self.donothing) self.menubar.add_cascade(label="edit",menu=self.editmenu) self.helpmenu = Menu(self.menubar, tearoff=0) self.helpmenu.add_command(label="Help Index", command=self.donothing) self.helpmenu.add_command(label="About...", command=self.donothing) self.menubar.add_cascade(label="Help", menu=self.helpmenu) self.root.config(menu=self.menubar) def donothing(self): filewin=Toplevel(self.root) button=Button(filewin,text="hi,添加你的代码") button.pack() def openfile(self): #这里,也是在网上搜了一下发现有如此好用的函数,看来要用python实现一个东西时,一定要先去了解一下有没有好用的库 filename = filedialog.askopenfilename(title = "打开",filetypes = [("文件","*.txt")]) if filename == "": filename = None else: root.title("FileName:"+os.path.basename(filename)) self.textpad.delete(1.0,END) f = open(filename,"r+") self.textpad.insert(1.0,f.read()) f.close() def save(self): sname = filedialog.asksaveasfilename(title = "保存",filetypes = [("保存文件","*.txt")]) f = open(sname,"w+") msg = self.textpad.get(1.0,END) f.write(msg) f.close() if __name__ == "__main__": root = Tk() #定义一个主窗口 root.title("记事本") #看到title了吗?添加一个属性,名字叫记事本 root.geometry("800x500") #几何布局,初始化主窗口的大小 window = Create(root) #从这里开始正式调用Create实现一个记事本 root.mainloop()
好吧,就这样,抽空再完善
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38279.html
摘要:,库的使用,注意已经与有了很大不同。对于下面的,定义了一些窗口属性,接下来在代码中我会简单记录一下它的用法。 这次练习的题目是实现一个简单的RSS功能,需要了解的知识点: tkinter,在上一篇《简单的记事本》中已经了解了一些tkinter的用法,在这里延续了上一篇,加深一下印象。 urllib,HTMLPaser库的使用,注意python3已经与python2有了很大不同。 #...
摘要:然而,每个人对编辑器的喜好各不相同,甚至引发出诸如神的编辑器与编辑器之神这种信仰之争。我们用来写的工具有两类一种是被称为的集成开发环境,它们为开发而生。但仅我上述提及的几个其实也足够用了。正如标题所说工欲善其事,必先利其器。 通常来说,每个程序员都有自己趁手的兵器: 代码编辑器 。你要是让他换个开发环境,恐怕开发效率至少下降三成。然而,每个人对编辑器的喜好各不相同,甚至引发出诸如神的编...
摘要:跟等微软一家所开发的编程语言不同,是典型的开放式的社群型开发语言,也就是说由来自全球各个角落的人共同贡献创造而成。 Python跟VB、VC等微软一家所开发的编程语言不同,是典型的开放式的社群型开发语言,也就是说由来自全球各个角落的人共同贡献、创造而成。所以,要学习Python语言,就不要想着点击个EXE文件,安装完成就马上就可以开始编码、查看效果了。Python的核心代码由一部分人开...
阅读 1629·2021-11-22 14:45
阅读 1086·2021-11-17 09:33
阅读 3333·2021-09-02 09:48
阅读 979·2019-08-30 15:54
阅读 2777·2019-08-30 15:53
阅读 2565·2019-08-30 12:54
阅读 2252·2019-08-29 12:37
阅读 2430·2019-08-26 13:58