帶你詳細了解Python GUI程式設計框架

2022-09-25 05:39:09 字數 2534 閱讀 2961

目錄

我們來看看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...