摘要:最近在練習一個關于項目的列表,拿到列表看到這是要實現一個記事本功能,剛開始拿到題目真有點懵。尤其是試驗之后發現一定要用類實現起來才簡單一些,對于這點類,,要知道本人已經接觸語言多年,但對于面向對象還是一竅不通。
最近在練習一個關于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()
好吧,就這樣,抽空再完善
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38279.html
摘要:,庫的使用,注意已經與有了很大不同。對于下面的,定義了一些窗口屬性,接下來在代碼中我會簡單記錄一下它的用法。 這次練習的題目是實現一個簡單的RSS功能,需要了解的知識點: tkinter,在上一篇《簡單的記事本》中已經了解了一些tkinter的用法,在這里延續了上一篇,加深一下印象。 urllib,HTMLPaser庫的使用,注意python3已經與python2有了很大不同。 #...
摘要:然而,每個人對編輯器的喜好各不相同,甚至引發出諸如神的編輯器與編輯器之神這種信仰之爭。我們用來寫的工具有兩類一種是被稱為的集成開發環境,它們為開發而生。但僅我上述提及的幾個其實也足夠用了。正如標題所說工欲善其事,必先利其器。 通常來說,每個程序員都有自己趁手的兵器: 代碼編輯器 。你要是讓他換個開發環境,恐怕開發效率至少下降三成。然而,每個人對編輯器的喜好各不相同,甚至引發出諸如神的編...
摘要:跟等微軟一家所開發的編程語言不同,是典型的開放式的社群型開發語言,也就是說由來自全球各個角落的人共同貢獻創造而成。 Python跟VB、VC等微軟一家所開發的編程語言不同,是典型的開放式的社群型開發語言,也就是說由來自全球各個角落的人共同貢獻、創造而成。所以,要學習Python語言,就不要想著點擊個EXE文件,安裝完成就馬上就可以開始編碼、查看效果了。Python的核心代碼由一部分人開...
閱讀 1634·2021-11-22 14:45
閱讀 1088·2021-11-17 09:33
閱讀 3334·2021-09-02 09:48
閱讀 979·2019-08-30 15:54
閱讀 2778·2019-08-30 15:53
閱讀 2566·2019-08-30 12:54
閱讀 2253·2019-08-29 12:37
閱讀 2431·2019-08-26 13:58