摘要:最近在練習一個關(guān)于項目的列表,拿到列表看到這是要實現(xiàn)一個記事本功能,剛開始拿到題目真有點懵。尤其是試驗之后發(fā)現(xiàn)一定要用類實現(xiàn)起來才簡單一些,對于這點類,,要知道本人已經(jīng)接觸語言多年,但對于面向?qū)ο筮€是一竅不通。
最近在練習一個關(guān)于python項目的列表,拿到列表看到這是要實現(xiàn)一個記事本功能,剛開始拿到題目真有點懵。雖然用python實現(xiàn)excel的處理已經(jīng)很熟悉了,且已經(jīng)把python的知識點都學了一遍,但是用起來還是不順手吶。尤其是試驗之后發(fā)現(xiàn)一定要用類實現(xiàn)起來才簡單一些,對于這1點 ---類,,要知道本人已經(jīng)接觸c語言多年,但對于面向?qū)ο筮€是一竅不通。好吧,再去翻python關(guān)于類的知識,終于給整出來一點門道了。還是代碼中解釋吧。
注意:這是基于Python3。
#Python支持多種圖形界面的庫,為了不再麻煩去下載新的庫,這里直接使用了python自帶的tkinter庫,記住本代碼主要為了練習實現(xiàn)一個簡單的GUI界面,順便熟悉一下tkinter的使用 from tkinter import * import os from tkinter import filedialog def die(): root.destroy() class Create: # init函數(shù)定義類的一些屬性 def __init__(self,root): self.root=(root) #菜單控件;顯示菜單欄,下拉菜單和彈出菜單,明顯這里是要創(chuàng)建基于root的頂層菜單,記住名字self.menubar self.menubar=Menu(root) #Text是tkinter中的文本控件,用于顯示多行文本 self.textpad = Text(root) self.textpad.pack(expand=YES,fill=BOTH)#expand 允許拉伸,fill允許(xy兩個方向)填充 #這里,是要創(chuàng)建基于頂層菜單的下拉菜單,記住它的名字self.filemenu self.filemenu=Menu(self.menubar,tearoff=0) #好吧,開始添加命令吧,記得要把實現(xiàn)方法添加到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) #好了,創(chuàng)建完畢就級聯(lián)到頂層菜單上吧,順便給它們起一個名字“文件” 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): #這里,也是在網(wǎng)上搜了一下發(fā)現(xiàn)有如此好用的函數(shù),看來要用python實現(xiàn)一個東西時,一定要先去了解一下有沒有好用的庫 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) #從這里開始正式調(diào)用Create實現(xiàn)一個記事本 root.mainloop()
好吧,就這樣,抽空再完善
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38279.html
摘要:,庫的使用,注意已經(jīng)與有了很大不同。對于下面的,定義了一些窗口屬性,接下來在代碼中我會簡單記錄一下它的用法。 這次練習的題目是實現(xiàn)一個簡單的RSS功能,需要了解的知識點: tkinter,在上一篇《簡單的記事本》中已經(jīng)了解了一些tkinter的用法,在這里延續(xù)了上一篇,加深一下印象。 urllib,HTMLPaser庫的使用,注意python3已經(jīng)與python2有了很大不同。 #...
摘要:然而,每個人對編輯器的喜好各不相同,甚至引發(fā)出諸如神的編輯器與編輯器之神這種信仰之爭。我們用來寫的工具有兩類一種是被稱為的集成開發(fā)環(huán)境,它們?yōu)殚_發(fā)而生。但僅我上述提及的幾個其實也足夠用了。正如標題所說工欲善其事,必先利其器。 通常來說,每個程序員都有自己趁手的兵器: 代碼編輯器 。你要是讓他換個開發(fā)環(huán)境,恐怕開發(fā)效率至少下降三成。然而,每個人對編輯器的喜好各不相同,甚至引發(fā)出諸如神的編...
摘要:跟等微軟一家所開發(fā)的編程語言不同,是典型的開放式的社群型開發(fā)語言,也就是說由來自全球各個角落的人共同貢獻創(chuàng)造而成。 Python跟VB、VC等微軟一家所開發(fā)的編程語言不同,是典型的開放式的社群型開發(fā)語言,也就是說由來自全球各個角落的人共同貢獻、創(chuàng)造而成。所以,要學習Python語言,就不要想著點擊個EXE文件,安裝完成就馬上就可以開始編碼、查看效果了。Python的核心代碼由一部分人開...
閱讀 1617·2021-11-22 14:45
閱讀 1063·2021-11-17 09:33
閱讀 3322·2021-09-02 09:48
閱讀 969·2019-08-30 15:54
閱讀 2767·2019-08-30 15:53
閱讀 2553·2019-08-30 12:54
閱讀 2241·2019-08-29 12:37
閱讀 2421·2019-08-26 13:58