溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的GUI編程框架介紹

發布時間:2021-08-24 21:08:15 來源:億速云 閱讀:228 作者:chen 欄目:開發技術

這篇文章主要介紹“Python中的GUI編程框架介紹”,在日常操作中,相信很多人在Python中的GUI編程框架介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中的GUI編程框架介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目錄
  • 1. GUI編程類關系圖

  • 2. 常用組件方法

  • 3.GUI面向對象寫法


1. GUI編程類關系圖

我們來看看Tkinter 的GUI組件關系圖

Python中的GUI編程框架介紹

重要說明:

1.上述圖表示的是相關類的繼承關系圖,從右到左子類繼承父類。

(1) 比如:組件Label Label繼承->Widget類->繼承Basewidget類->繼承Misc類->繼承Object父類

子類擁有父類的所有的屬性和方法

2.Misc和Wim

Tkinter 的 GUI組件有兩個父類,它們直接繼承了Object類

1.Misc 是所有組件的根父類

2.Wim 主要提供一些與窗口管理器通信的功能函數

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所有組件都具備四個父類的所有屬性和方法

Python中的GUI編程框架介紹

2. 常用組件方法

Tkinter類名稱簡介
Toplevel頂層容器類,可用于為其他組件提供單獨的容器,Toplevel 有點類似于窗口
Button按鈕代表按鈕組件
Canvas畫布提供繪圖功能包括直線、矩形、橢圓、多邊形、位圖等
Checkbutton復選框可供用戶勾選的復選框
Entry單行輸入框用戶可輸入的內容
Frame容器用于裝載其他GUI組件
Label標簽用于顯示不可編輯的文本或者圖標
LabelFrame容器也是容器組件,類似Frame,它可以支持添加標題
Listbox列表框列出多個選項,供用戶選擇
Menu菜單菜單組件
Menubutton菜單按鈕用來包含菜單的按鈕(包括下拉式、層疊式)
OptionMenu菜單按鈕Menubutton 的子類,也代表菜單按鈕,可以通過按鈕打開一個菜單
Message消息框類似標簽,可以顯示多行文本

3.GUI面向對象寫法

我們前面已經使用過Tkinter 類來創建一個簡單的GUI程序,步驟大致為:

1.創建根窗口

2.創建組件

3.布局排版管理

4.導入事件

.....以上都是基于過程的編程寫法

但是,我們實際工作中,開發的程序都是比較復雜的

GUI編程我們也要使用面向對象方式去編程,更加合理的組織我們代碼

GUI面向對象編程寫法關鍵點:

官網DEMO版本:

Python中的GUI編程框架介紹

  • 使用Application類來組織各個GUI程序

  • Application類繼承了Frame類及所有父類特性

  • 使用構造函數__init__()初始化窗口中的對象

  • 使用createwidgets()方法創建窗口中的對象

  • 創建主窗口root

  • 運行調用Application來調用GUI對象

  • 循環事件管理與用戶進行交互

Frame框架是Tkinter組件,表示一個矩形的區域,Frame一般作為容器使用,可以放置其他組件,從而實現復雜的布局

面向對象代碼邏輯拆分圖:

Python中的GUI編程框架介紹

根據官網推薦的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()

Python中的GUI編程框架介紹

總結

我們學習GUI編程面向對象的寫法,讓我們代碼更加的整潔,提高代碼的重復使用率。

GUI 面向對象編程使用繼承Frame類使用構造函數來替代反復創建組件對象,組件操作全部封裝到createwidget方法,Application對象直接通過master來調用。

到此,關于“Python中的GUI編程框架介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女