目錄
我們來看看tkinter 的gui元件關係圖
重要說明:
1.上述圖表示的是相關類的繼承關係圖,從右到左子類繼承父類。
(1) 比如:元件label label繼承->widget類->繼承basewidget類->繼承misc類->繼承object父類
子類擁有父類的所有的屬性和方法
2.misc和wim
tkinter 的 gui元件有兩個父類,它們直接繼承了object類
1.misc 是所有元件的根父類
2.wim 主rbwhitjip要提供一些與視窗管理器通訊的功能函式
3.tk
1.misc 和 wim 派生出類tk。
2.代表應用程式的主視窗,一般應用程式都需要直接或者間接使用tk
3.程式中通常定義
# 定義主視窗
root = tk()
複製**
4.pack類、place類、grid類是我們常用的布局管理器
1.布局管理器管理元件的大小、位置
2.可以將容器中元件實現合理的排布
5.basewidget是所有元件的父類
6.widget是所有元件的父類
widget共有四個父類:basewidget、pack、grid、place
gui所有元件都具備四個父類的所有屬性和方法
tkinter類
名稱簡介
toplevel
頂層容器類,可用於為其他元件提供單獨的容器,toplevel 有點類似於視窗
www.cppcns.com
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 *
clwww.cppcns.comass application(frame):
def __init__(self,master=none):
# super()代表的是父類的定義,而不是父類物件
rbwhitjip 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來呼叫。
本文標題: 帶你詳細了解python gui程式設計框架
本文位址:
apply call詳細了解
function thisobj argarray call 方法 function call thisobj arg1 arg2.定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例 b.call a,args1,args2 a物件應用b物件的方法 他們都是用來代替另乙個物件呼叫乙...
詳細了解 Cookie Session Token
很久很久以前,web基本上就是文件的瀏覽而已,既然是瀏覽,作為伺服器 不需要記錄誰在某一段時間裡都瀏覽了什麼文件。每次請求都是乙個新的http協議,就是請求加響應,尤其不用記住是誰則剛發了http請求,每個請求相對來說都是全新的。也就是說必須把每個人區分開,這是乙個不小的挑戰,因為http請求是無狀...
詳細了解try catch return
情況1 try中有return,finally中沒有return public class trytest private static inttest catch exception e finally system.out.println finally return num 輸出結果如下 tr...