https://www.toutiao.com/article/7216746360014570018/?log_from=68cc8fc2aa53f_1680873953396 小朋友們好,大朋友們好! 我是貓妹,一名愛上Python編程的小學(xué)生。 歡迎和貓妹一起,趣味學(xué)Python。 今日主題 今天咱們學(xué)習(xí)下什么是GUI編程,Python自帶的tkinter庫,最后欣賞下tkinter編寫的計(jì)算器。 GUI編程 什么是GUI編程呢? GUI編程(Graphical User Interface),即用戶圖形界面編程。 比如咱們用的辦公軟件、上網(wǎng)軟件等等都屬于GUI編程。 和GUI編程相對(duì)應(yīng)的,是非GUI方式運(yùn)行(命令窗口)。 早期的DOS系統(tǒng)無界面,只有極少數(shù)人會(huì)使用。 后來的Windows系統(tǒng),人人可上手使用。 GUI程序,使用方便,交互性好。 非GUI程序,運(yùn)行高效。 tkinter簡介 Python中GUI工具包有很多,比如tkinter、wxPython、PyQT、PyGTK、PySide等。 不同的工具包,各有千秋。 具體選擇哪個(gè),要根據(jù)使用場(chǎng)合來選擇。 tkinter是Python官方GUI工具包,安裝Python3.x后,會(huì)安裝tkinter。 tkinter的語法和HTML相似。 想使用tkinter,只需要三步:
Label標(biāo)簽組件 可以用來顯示文本或圖片,語法如下: label = tkinter.Label(root, text="文本內(nèi)容") label.pack() label = tkinter.Label(root, image=圖片對(duì)象) label.pack() Label常用屬性 tkinter.PhotoImage用來創(chuàng)建一個(gè)圖像對(duì)象。 compound可設(shè)置top、bottom、left、right、center,表示圖片在文字的上下左右中。 如果要同時(shí)顯示文字、圖片,除了設(shè)置text和image外,compound也必須要設(shè)置。 除了自定義圖片外,Label組件還為我們提供了內(nèi)置圖片。 語法為thinter.Label(root,bitmap="取值") Button按鈕組件 可以用鼠標(biāo)點(diǎn)擊,語法如下: tkinter.Button(root, text="文本", command=函數(shù)名) Checkbutton復(fù)選框 可以進(jìn)行選擇的框,可以選多個(gè)。語法如下: tkinter.Checkbutton(root, text="", variable=取值) text要顯示的文本。 variable復(fù)選框的值。 下圖中的v = tkinter.IntVar()表示定義了一個(gè)變量v。 v的值0或1是復(fù)選框是否被選中,0未被選中,1選中。 也可以不用0和1來表示是否選中,可以使用onValue和offValue來表示。 如果選項(xiàng)較多,可以使用列表和循環(huán)來實(shí)現(xiàn)。 anchor指定顯示位置,九個(gè)方向(NSWS)(NW NE SE SW)(CENTER)。 單選按鈕Radiobutton 單選框也就是單選按鈕,語法為: tkinter.Radiobutton(root, text="",value="", variable=取值) text要實(shí)現(xiàn)的值,給用戶看。 value值,給程序看。 variable動(dòng)態(tài)存儲(chǔ)value值,會(huì)隨著value變化而變化。 如果有多個(gè)選項(xiàng),可以使用for循環(huán)處理。 LabelFrame分組框 可以使用LabelFrame組件來對(duì)單選框或復(fù)選框進(jìn)行分組。 語法為: tkinter.LabelFrame(root, text="") Entry文本框 單行文本框Entry語法為: tkinter.Entry(root) tkinter提供了三種布局組件的方法:pack,gird,place。 gird允許用戶使用表格形式來管理組件的位置。 row=1,column=2表示第2行第3列。 可以使用Entry組件的get()獲取輸入值。 Listbox列表框 如果有多個(gè)選項(xiàng),要么使用單選框Radiobutton,要么使用多選框Checkbutton。 但是,如果選擇特別多呢? 比如12個(gè)月,這時(shí)用Listbox列表框比較合適。 計(jì)算器 最后,我們欣賞幾款tkinter寫的計(jì)算器吧! 怎么樣? 挺漂亮吧? 網(wǎng)絡(luò)上有許許多多的基于tkinter寫的計(jì)算器程序,感興趣的小伙伴不妨借鑒學(xué)習(xí)下。 好了,我們今天就學(xué)到這里吧! 如果遇到什么問題,咱們多多交流,共同解決。 我是貓妹,咱們下次見! |
|