Tkinter類 | 名稱 | 簡介 |
---|---|---|
Toplevel | 頂層 | 容器類,可用于為其他組件提供單獨的容器,Toplevel 有點類似于窗口 |
Button | 按鈕 | 代表按鈕組件 |
Canvas | 畫布 | 提供繪圖功能包括直線、矩形、橢圓、多邊形、位圖等 |
Checkbutton | 復選框 | 可供用戶勾選的復選框 |
Entry | 單行輸入框 | 用戶可輸入的內容 |
Frame | 容器 | 用于裝載其他GUI組件 |
Label | 標簽 | 用于顯示不可編輯的文本或者圖標 |
LabelFrame | 容器 | 也是容器組件,類似Frame,它可以支持添加標題 |
Listbox | 列表框 | 列出多個選項,供用戶選擇 |
Menu | 菜單 | 菜單組件 |
Menubutton | 菜單按鈕 | 用來包含菜單的按鈕(包括下拉式、層疊式) |
OptionMenu | 菜單按鈕 | Menubutton 的子類,也代表菜單按鈕,可以通過按鈕打開一個菜單 |
Message | 消息框 | 類似標簽,可以顯示多行文本 |
我們前面已經使用過Tkinter 類來創建一個簡單的GUI程序,步驟大致為:
1.創建根窗口
2.創建組件
3.布局排版管理
4.導入事件
.....以上都是基于過程的編程寫法
但是,我們實際工作中,開發的程序都是比較復雜的
GUI編程我們也要使用面向對象方式去編程,更加合理的組織我們代碼
GUI面向對象編程寫法關鍵點:
官網DEMO版本:
Frame框架是Tkinter組件,表示一個矩形的區域,Frame一般作為容器使用,可以放置其他組件,從而實現復雜的布局
面向對象代碼邏輯拆分圖:
根據官網推薦的DEMO版本,我們來使用面向對象思想實現GUI程序
from tkinter import * class Application(Frame): def __init__(self,master=None): # super()代表的是父類的定義,而不是父類對象 super().__init__(master) self.master = master self.pack() self.createwidget() def createwidget(self): self.but1 = Button(self) self.but1["text"] = "add" self.but1.pack() self.but1["command"] = self.addinfo def addinfo(self): messagebox.showinfo("提示","添加成功") root = Tk() root.geometry("400x100+200+300") root.title("MyfirstAPP") app = Application(master=root) root.mainloop()
我們學習GUI編程面向對象的寫法,讓我們代碼更加的整潔,提高代碼的重復使用率。
GUI 面向對象編程使用繼承Frame類使用構造函數來替代反復創建組件對象,組件操作全部封裝到createwidget方法,Application對象直接通過master來調用。
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!